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.