AI-assisted 3D building editor by FlyingDarkDev.
HideBuilder is a Next.js + React Three Fiber application for designing site/building models in 3D, with scene-graph editing, geometry systems, cloud-ready data flow, and an integrated AI assistant panel.
- 3D-first editor for architectural/site planning workflows
- Scene graph model with typed nodes and hierarchical relationships
- Modular systems for walls, roofs, slabs, ceilings, zones, items, guides, and scans
- AI panel for assisted workflows and context-aware editing support
- Monorepo architecture for clean separation between core logic, viewer, and app UI
- Interactive 3D canvas with selection and editing tools
- Model hierarchy:
Site -> Building -> Level -> Element/Zone - Geometry systems for procedural updates from node data
- Store-driven architecture with undo/redo support
- Context actions for object operations (copy/paste/cut/delete/move/select all/add to AI)
- Property + cloud sync foundation (auth + DB packages)
- Help/brand integrations and contact workflow support
Next.js 16+React 19Three.js+@react-three/fiber+@react-three/dreiZustandfor editor/viewer/core stateTurborepofor monorepo orchestrationSupabase+Better Authfor backend/auth workflowsBiomefor linting/formattingBunas package manager/runtime
.
├── apps/
│ └── editor/ # Main HideBuilder web application
├── packages/
│ ├── auth/ # Auth integration
│ ├── core/ # Scene schema, store, systems, event bus
│ ├── db/ # Supabase schema/client/helpers
│ ├── viewer/ # R3F viewer/rendering layer
│ ├── ui/ # Shared UI primitives
│ ├── eslint-config/ # Shared lint config
│ └── typescript-config/ # Shared tsconfig presets
├── turbo.json
├── package.json
└── SETUP.md
- Nodes are stored in a flat map (
Record<id, node>) - Parent/child relations are resolved by IDs
- Node types include site, building, level, wall, slab, roof, ceiling, zone, item, scan, guide
- Dirty-node marking allows systems to update only what changed
Core and viewer systems run per-frame or per-update and regenerate geometry/transforms when nodes are dirty:
- Wall system
- Slab system
- Ceiling system
- Roof system
- Item placement system
- Level visibility/positioning system
- Guide/scan visibility systems
- React Three Fiber canvas with renderers for node types
- Object registry for fast lookup of rendered objects by node ID/type
- Camera/controls + selection handling integrated with editor state
- Toolbars, side panels, hierarchy navigation, AI assistant panel
- Context actions and multi-step editing flows
- Property/cloud interaction paths via auth + DB packages
User action
-> Tool handler
-> Scene store update (create/update/delete)
-> Dirty node marking
-> Renderer/registry sync
-> System recompute
-> Updated mesh in canvas
Node.js >= 20Bun >= 1.3- Docker Desktop (for local Supabase)
bun installCreate/update apps/editor/.env.local.
Typical variables used in this project:
NEXT_PUBLIC_APP_URLPOSTGRES_URLNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYBETTER_AUTH_SECRETBETTER_AUTH_URLRESEND_API_KEY(optional for email/contact)NEXT_PUBLIC_GOOGLE_MAPS_API_KEY(optional)OPENAI_API_KEY/ANTHROPIC_API_KEY/GEMINI_API_KEY(optional AI providers)
Detailed setup: SETUP.md
bun devApp URL: http://localhost:3000
bun dev-> run all workspace dev tasks via Turbobun run build-> build all packages/appsbun run check-types-> type-check workspacesbun run lint-> Biome lintbun run lint:fix-> auto-fix lint issuesbun run format-> format codebasebun run check-> Biome checkbun run db:start-> start local Supabasebun run db:stop-> stop local Supabasebun run db:reset-> reset local DB/migrations
@hide-builder/core: schema, state, systems, event bus, spatial helpers@hide-builder/viewer: canvas/viewer and renderers@hide-builder/auth: Better Auth server/client setup@hide-builder/db: Supabase clients, DB types, migrationsapps/editor: full product UI and editor workflows
- If viewer errors mention unknown R3F objects, confirm custom objects are extended/registered correctly and mounted in the correct layer.
- If cloud/auth fails, verify
.env.localvalues and Supabase local instance status. - If workspace changes in
packages/*do not reflect, restartbun devfrom repo root.
- Project: HideBuilder
- Maintainer: FlyingDarkDev
- Website:
flyingdarkdev.com(coming soon) - GitHub:
https://github.com/xgauravyaduvanshii - X (Twitter):
https://x.com/darkdev064 - LinkedIn:
https://lindin.com/in/flyingdarkdev - Instagram:
https://instagram.com/gaurav_.096
MIT License. See LICENSE.