Spaces:
Sleeping
Sleeping
Commit History
-
🎬 Auto-deploy GLB Studio — 9af8035 fix: keyframe animation workflow + selection drop +
Verified signatureb6aaffe -
🎬 Deploy GLB Animation Studio v2 — full feature set
Verified signature0fffd55
-
deploy: 2-stage Dockerfile, npm build on HF
Verified signature39353da -
deploy: 2-stage Dockerfile, npm build on HF
Verified signature5a33ffc
-
deploy: 2-stage Dockerfile, npm build on HF
Verified signature458a46f -
deploy: 2-stage Dockerfile, npm build on HF
Verified signatureafd2779
-
feat: clean render mode + scene visibility + full export overhaul
GLB Studio DeployRENDER MODE (the main fix): When rendering/exporting, setIsRenderMode(true) is called FIRST. This hides ALL of these from the canvas: ❌ Grid ❌ Gizmo helper (axis widget) ❌ Selection rings around models ❌ TransformControls (gizmo arrows) ❌ Camera marker objects (box + lens + cone) ❌ Deselect plane ❌ OrbitControls ❌ Camera view HUD / brackets / crosshair Only renders: models + lighting + environment + floor + background Render mode exits automatically on cancel or completion. useStore.js: - isRenderMode: false (separate from isExporting so UI can check it) - showGrid / showGizmo / showCameraObjects / showContactShadows toggles - setIsRenderMode / setShowGrid / setShowGizmo etc. - renderWidth / renderHeight for future offscreen rendering Scene.jsx: - Floor: Grid and ContactShadows check !isRenderMode && showGrid - CameraMarkers: hidden when isRenderMode || !showCameraObjects - EditorGizmo: hidden when isRenderMode || !showGizmo - Deselect: hidden when isRenderMode - Orbi…ad2f294
-
feat: comprehensive audit - add all missing core features
GLB Studio DeployuseStore.js (complete rewrite): - Undo/Redo: pushUndo/undo/redo with snapshot of 8 state keys - Project Save/Load: localStorage, exportProjectJSON, importProjectJSON (.glbstudio files) - Project name (editable, double-click in toolbar) - Easing on keyframes: linear/ease-in/ease-out/ease-in-out (stored per-KF) - Loop playback: loopPlayback bool, setLoopPlayback - Grid snap: snapEnabled, snapTranslate/Rotate/Scale - Material overrides: materialOverride per model {color,roughness,metalness,opacity,wireframe} - castShadow/receiveShadow per model - duplicateModel: deep clone with offset position - selectModel: now correctly updates lastSelectedModelId Toolbar.jsx (complete rewrite): Keyboard shortcuts (skip when typing in inputs): G = Move R = Rotate S = Scale Space = Play/Pause Ctrl+Z = Undo Ctrl+Y/Ctrl+Shift+Z = Redo D = Duplicate selected Delete = Remove selected Tab = Toggle snap L = Loop F12 = Screenshot Ctrl+S = Save project - Undo/Redo buttons (greyed when stack emp…72b08e2
-
fix: animation detection + AI 404 errors
GLB Studio DeployModelManager.jsx: - Uses THREE.AnimationMixer directly (not useAnimations hook) so clips work on cloned scenes correctly - Auto-plays first clip on model load - Cross-fades between clips (fadeOut 0.3s / fadeIn 0.3s) - Mixer ticked via useFrame (clips actually animate now) - Manual skeleton clone for SkinnedMesh models (no SkeletonUtils dep) - Separate refs: mixerRef, actionsRef, currentAnimRef - Responds to animationPlaying, activeAnimation, animationSpeed from store AnimationPlayer.jsx: - Play/Pause button actually toggles model.animationPlaying in store - Stop button pauses and resets - Now-playing indicator with pulse dot (green=playing, grey=paused) - Play All / Pause All header button - Clip buttons show ▶ / ⏸ prefix for active clip state useStore.js: - Added setModelAnimPlaying(id, playing) action - selectModel now preserves lastSelectedModelId on deselect AIController.jsx: - 10 verified free models (old llama-3.1-8b had no free endpoints) - Handles HTTP 404, 429, 500, 503, …d9dc1a9
-
🎬 Initial release: GLB Animation Studio
GLB Studio DeployComplete 3D animation studio for Hugging Face Spaces Features: - GLB/GLTF model loading (URL, file upload, demo models) - Three.js scene with shadows, lighting presets (studio/outdoor/dramatic/neon) - Transform controls: Move / Rotate / Scale with axis gizmos - Built-in GLB animation playback with speed control - Keyframe animation system with linear interpolation - 300-frame timeline editor with draggable keyframe dots - Video export via MediaRecorder API (WebM download) - Mobile-optimised UI (touch orbit, pinch zoom, bottom drawer) - Zustand state management Docker deployment: - Multi-stage Dockerfile (Node 20 builder → nginx 1.25 runner) - nginx on port 7860 (HF Spaces requirement) - Non-root user uid 1000 (HF Spaces requirement) - COEP/COOP headers for SharedArrayBuffer support - docker-compose for local prod + dev hot-reload Tech stack: React 18, Vite, Three.js, R3F, @react-three/drei, Zustandcad548d