Weekly Development Update: 10/22/2025 - 10/29/2025

October 29, 2025

Quick Update

- A new visual color picker is now available, enhancing the user experience for lighting adjustments.
- Added auto-save for light positions during transformations, ensuring changes are preserved seamlessly.
- Enhanced the outliner with icons for light objects, improving navigation and organization.
- Fixed various lighting state issues to prevent unwanted updates and console errors.

This week's development activity from 10/22/2025 - 10/29/2025.

Recent Commits

  • [kurasao] feat: Add visual color picker, multiple light types, camera views, and object hierarchy
  • [kurasao] fix: Remove EventListener type annotation causing build errors
  • [kurasao] feat: Auto-save light positions during transform
  • [kurasao] feat: Add icons for light objects in outliner
  • [kurasao] feat: Add save status feedback to save button
  • [kurasao] fix: Use primitive dependencies for lighting useEffect
  • [kurasao] fix: Sync lighting from scene data when it changes
  • [kurasao] fix: Add proper flag to prevent lighting update loop
  • [kurasao] fix: Prevent lighting update loop and console spam
  • [kurasao] fix: Prevent lighting state from being reset by useEffect
  • [kurasao] fix: Debug logging for lighting changes
  • [kurasao] fix: Properly expose and use scene data functions for lighting persistence
  • [kurasao] fix: Add missing useEffect import to SimpleEditor
  • [kurasao] feat: Persist lighting properties to scene data
  • [kurasao] fix: Light position now properly persists after transformation
  • [kurasao] feat: Preserve custom lighting in material view mode
  • [kurasao] feat: Add Blender-style viewport shading options
  • [kurasao] refactor: Remove redundant floating add objects menu
  • [kurasao] fix: Move TransformControls outside light group to prevent infinite loop
  • [kurasao] fix: Attach TransformControls directly to light group object
  • [kurasao] fix: Prevent light position sync during transform to allow movement
  • [kurasao] fix: Fix light transform controls freezing issue
  • [kurasao] fix: Properly sync light positions and improve visibility
  • [kurasao] feat: Improve light visibility and add debugging
  • [kurasao] fix: Enable scrolling in the outliner for better object selection
  • [kurasao] feat: Add transform controls support for lights
  • [kurasao] feat: Add Blender-style top toolbar and fix light rendering
  • [kurasao] feat: Add lighting context to Properties panel and fix material updates
  • [kurasao] feat: Add Blender-style property context system with icon tabs
  • [kurasao] feat: Add Blender-style layout with outliner, lighting controls, and enhanced rendering
  • [kurasao] feat: texture maps fully working - materials can display images on objects
  • [kurasao] fix: add onUpdate to force material refresh when texture loads
  • [kurasao] debug: add ref to material to check if texture is attached
  • [kurasao] fix: make planes larger and position them above ground facing up
  • [kurasao] fix: trigger re-render when cached texture with image is found
  • [kurasao] fix: use DoubleSide material to show texture on both sides of plane
  • [kurasao] debug: add logging to see what props are being passed to meshStandardMaterial
  • [kurasao] fix: simplify SceneObjectComponent key to prevent unnecessary remounts
  • [kurasao] fix: remove texturesReady state that was causing unnecessary remounts
  • [kurasao] debug: add texture validation checks to see if texture.image exists
  • [kurasao] debug: add cache inspection logging to diagnose texture not being found
  • [kurasao] fix: remove useMemo from texture lookups to always read from cache
  • [kurasao] debug: add logging to see what props are passed to meshStandardMaterial
  • [kurasao] fix: use useMemo for texture references to maintain stability
  • [kurasao] debug: add logging to track MaterialRenderer renders and when texture disappears
  • [kurasao] fix: remove unused forceUpdateRef to fix TypeScript error
  • [kurasao] debug: add forceUpdate ref to investigate texture disappearance
  • [kurasao] fix: use global Map cache for textures to persist across all remounts
  • [kurasao] fix: use ref instead of state for textures to persist across remounts
  • [kurasao] fix: add texture URL cache to prevent reloading the same texture
  • [kurasao] fix: use object.id as key for MaterialRenderer to balance stability and updates
  • [kurasao] fix: remove key prop from MaterialRenderer to prevent remounting and losing texture state
  • [kurasao] fix: prevent texture disposal on dependency changes, only dispose on unmount
  • [kurasao] fix: remove RGBFormat (not available in this Three.js version)
  • [kurasao] fix: configure texture properties for proper rendering (flipY, wrap, format)
  • [kurasao] fix: keep textures visible when object is selected by not forcing transparency
  • [kurasao] fix: add null checks for objects array to handle empty scenes
  • [kurasao] fix: add texture loading guard to prevent rendering before texture is ready
  • [kurasao] debug: add detailed texture state logging to diagnose rendering issue
  • [kurasao] fix: use white color when texture exists to prevent tinting, make textures visible
  • [kurasao] revert auto-white color fix, keep debug logging
  • [kurasao] debug: add material property logging to diagnose texture issues
  • [kurasao] debug: improve texture loading with better logging and cleanup
  • [kurasao] debug: add logging to texture loading to diagnose issues
  • [kurasao] fix: prevent textures from forcing transparency on materials
  • [kurasao] fix: MaterialEditor now updates history state for real-time material updates
  • [kurasao] fix: force SceneObjectComponent to update when material properties change for real-time updates
  • [kurasao] fix: force MaterialRenderer to update when material properties change
  • [kurasao] feat: add direct file upload buttons for texture maps in Material Editor
  • [kurasao] docs: update to reflect texture maps implementation and MVP progress
  • [kurasao] feat: add texture maps support (diffuse, normal, roughness, metallic, AO) to materials
  • [kurasao] docs: update to reflect completion of primitive shapes
  • [kurasao] feat: add octahedron, tetrahedron, icosahedron, and plane primitives
  • [kurasao] docs: update to reflect completed undo/redo system deployment
  • [kurasao] fix: add missing properties to IntersectionObserver mock
  • [kurasao] fix: add explicit type annotation for object in getObjectPath
  • [kurasao] fix: change activeObject to store SceneObject instance instead of ID
  • [kurasao] fix: change selectedObjects to store SceneObject instances instead of IDs
  • [kurasao] fix: remove all pivot property references from TransformData
  • [kurasao] fix: remove pivot property from TransformData return value
  • [kurasao] fix: correct logical error in getWorldTransform and add tuple type assertions
  • [kurasao] fix: add required SceneObject properties with default values
  • [kurasao] fix: remove hierarchy wrapper and use SceneContextState structure directly
  • [kurasao] fix: replace 'divisions' with 'subdivisions' in all geometry generation functions
  • [kurasao] fix: use 'segments' property instead of 'divisions' in generateBoxGeometry
  • [kurasao] fix: cast arrays to tuple types in getWorldTransform and getLocalTransform
  • [kurasao] fix: use 'object' instead of 'mesh' in icon rendering
  • [kurasao] fix: map mesh type to object in SceneGraphTree
  • [kurasao] fix: add optional port index properties to GeometryConnection interface
  • [kurasao] fix: update onTransformEnd prop type to accept optional parameter
  • [kurasao] fix: use default export for Next.js page component
  • [kurasao] fix: add missing React imports to fix ESLint errors
  • [kurasao] fix: resolve undo/redo initialization and transform loop issues
  • [kurasao] feat: implement undo/redo system for MVP
  • [kurasao] feat: improve procedural editor performance and implement proper cone cooking

No pull requests in this period.

No issues in this period.