Conversation
- Add TextureAssetLoader (wraps THREE.TextureLoader) - Add MeshMaterial component with texture asset ref - Add textureResolveSystem to apply loaded textures to mesh materials - Wire up texture loader and system in editor setup Uses a separate MeshMaterial component to avoid the one-asset-ref-per-component constraint in VisualRenderer (which already has an asset ref in the model variant).
Replace createModelResolveSystem and createTextureResolveSystem with a single createAssetResolveSystem that dispatches to per-type handlers via AssetResolver. - AssetResolver class with register() for AssetTypeHandler instances - createAssetResolveSystem uses peek() for all resolution (no drainReady) - createModelHandler() and createTextureHandler() factory functions - Legacy wrappers preserved (deprecated) so existing tests pass as-is - Editor setup updated to use unified system - All 379 tests pass
feat: add texture support for mesh materials
feat: generic asset resolve pipeline with AssetResolver
refactor: decouple Geometry from VisualRenderer into own component
…n-only toolbar - Add inline entity renaming via double-click in the scene tree with no-layout-shift input styling - Add Meta component with entity names shown in the tree - Split Save into Save (reuses file handle) and Save As (always picks new file) - Use showOpenFilePicker for Load to enable Save-back-to-origin - Switch toolbar buttons to icon-only with tooltips - Fix background sync to process removals before additions (destroy+recreate) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… pipeline - Fix SpotLight color schema (hex integer → colorTuple RGBA array) - Fix editor RAF loop frame lifecycle (flushChanges → beginFrame/endFrame) - Make ThreeBinding required in createLightSyncSystem, remove redundant transform sync that duplicated createTransformSyncSystem - Extract generic asset request/resolve systems into src/engine/assets/systems.ts and rendering-specific handlers into src/engine/rendering/asset-handlers.ts - Replace `as any` casts in lights.ts with `as ComponentType<LightRegistry>` - Remove deprecated createModelResolveSystem/createTextureResolveSystem wrappers - Add collapsible inspector sections and proper GPU resource disposal in binding Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…each Three.js Changes made between frames (e.g. from the editor inspector's React event handlers) were being cleared by beginFrame() before systems could see them. Added a pending changes buffer that accumulates between-frame mutations and merges them into the active change sets at the start of the next frame. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…l+ModelVisual Each visual type is now a self-contained component: MeshVisual bundles geometry, color, and texture inline; ModelVisual holds just an asset ref. This eliminates orphaned components, cross-component coupling in the sync system, and simplifies variant transitions to remove+add. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Route AssetRef objects to a dedicated AssetRefField component that renders a text input with a Browse button, opening the native file dialog filtered by asset type. Selected files are loaded via Blob URLs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…r overhaul Add dark/light theme switching with Sun/Moon toggle in title bar, CSS variable overrides via [data-theme="light"], localStorage persistence, and flash-prevention script. Introduce ThemeTweaker panel with per-theme defaults. Add AssetBrowser with file picker, URI resolver, thumbnail cache, and asset type detection. Refactor editor components to use new design system tokens and layout. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…only storage Replace File System Access API + IndexedDB with a Hono server backed by SQLite (scenes), local filesystem (assets), and inline job queue — all behind swappable interfaces (IDatabase, IBlobStorage, IJobQueue). Client changes: ProjectFolder now uses fetch(), AssetUriResolver returns stable server URLs (no blob URL caching), Toolbar does server scene CRUD, AssetRefField drops blob fallbacks. Vite proxies /api to :3001. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… sizes - Track scene ID/name in EditorStore with localStorage persistence for auto-reload - Auto-load last opened scene on startup via Toolbar - Show scene name in header instead of static "Editor" label - Auto-import external URLs (http/https) typed into AssetRef fields into blob storage - Bump default typography sizes (header 11px, label 13px, body 14px) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.