How amyhakim/camvas works
Showcam is a browser-based 3D scene editor for Gaussian splats and GLB scenes. The main workflow is to open a scene, navigate and inspect it, make project edits, then author and review a camera move on the timeline. The editor also supports proxy-actor blocking, semantic labels, audio, collaboration, and optional camera-path planning. PlayCanvas handles rendering and interaction; Next.js API routes provide planning, asset lookup, and worker integrations. The graph follows documented capabilities and sampled route ownership; unsampled UI wiring is shown only where the README establishes it.
Main entry points: editor.tsx Editor shell · live-viewport.tsx Live viewport · timeline.tsx Timeline · page.tsx Editor page
Components 28
Editor and projects
- Editor page
src/app/editor/page.tsx - Editor shell
src/editor/editor.tsx - Project state
src/editor/use-project.ts - Projects
src/features/project/collection.ts
Scene runtime
- Live viewport
src/features/viewport/live-viewport.tsx - Scene model
src/features/scene/data.ts - Scene browser
src/features/scene/object-browser.tsx - Object inspector
src/features/scene/object-inspector.tsx
Scene authoring
- Props and models
src/features/props/prop-controls.tsx - Actor blocking
src/features/blocking/model.ts - Semantic labels
src/features/semantics/controls.tsx - Collision review
src/features/collision/controls.tsx
Camera and timeline
- Shot authoring
src/features/camera/shot-authoring.tsx - Flight planning
src/editor/automatic-flight-workflow.ts - CinemaTraj paths
src/features/camera/cinematraj.ts - Timeline
src/features/timeline/timeline.tsx - Timeline audio
src/features/audio/engine.ts
Services and collaboration
- Peer collaboration
src/features/collaboration/use-scene-collaboration.ts - Shot planning API
src/app/api/plan/route.ts - Optimization API
src/app/api/optimizations/route.ts - GPU worker client
src/backend/worker.ts - Labeling API
src/app/api/semantic-labels/route.ts - Model search API
src/app/api/models/search/route.ts - Sketchfab
- Audio search API
src/app/api/audio/search/route.ts - Audio providers
- WebRTC signaling
Other components
- Editor user
Connections 29
- Editor user → Editor page: opens
- Editor page → Editor shell: renders
- Editor shell → Live viewport: displays scene
- Editor shell → Project state: edits project
- Project state → Projects: stores project data
- Live viewport → Scene model: renders scene
- Live viewport → Scene browser: selects geometry
- Scene browser → Object inspector: inspects selection
- Editor shell → Props and models: edits props
- Editor shell → Actor blocking: blocks actors
- Editor shell → Semantic labels: labels scene
- Editor shell → Collision review: reviews collisions
- Editor shell → Shot authoring: authors shots
- Shot authoring → Timeline: creates track
- Editor shell → Flight planning: plans flight
- Flight planning → Shot planning API: requests plan
- Editor shell → CinemaTraj paths: requests path
- CinemaTraj paths → Editor user: submits path
- Editor shell → Timeline: plays and scrubs
- Timeline → Timeline audio: schedules clips
- Editor shell → Peer collaboration: shares scene state
- Peer collaboration → WebRTC signaling: signals peers
- Editor shell → Model search API: searches models
- Model search API → Sketchfab: searches catalog
- Editor shell → Audio search API: searches audio
- Audio search API → Audio providers: queries catalog
- Editor shell → Labeling API: requests labels
- Editor shell → Optimization API: submits snapshot
- Optimization API → GPU worker client: creates job