{"id":50846945,"url":"https://github.com/aykutsp/apollo-studio","last_synced_at":"2026-06-14T10:34:17.075Z","repository":{"id":352435156,"uuid":"1215145156","full_name":"aykutsp/apollo-studio","owner":"aykutsp","description":"Apollo - 2D \u0026 3D Architectural Studio — Browser-first floor plan drafting and live 3D walkthrough.","archived":false,"fork":false,"pushed_at":"2026-04-19T20:23:39.000Z","size":1552,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-14T10:34:11.312Z","etag":null,"topics":["3d-editor","3d-modeling","3d-visualization","architectural-editor","architecture","browser-based","building-design","floor-plan","interactive","interior-design","parametric-design","real-time","web-cad"],"latest_commit_sha":null,"homepage":"https://aykutsp.github.io/apollo-studio/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aykutsp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.md","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-19T14:41:28.000Z","updated_at":"2026-04-24T07:53:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aykutsp/apollo-studio","commit_stats":null,"previous_names":["aykutsp/apollo-studio"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aykutsp/apollo-studio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykutsp%2Fapollo-studio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykutsp%2Fapollo-studio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykutsp%2Fapollo-studio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykutsp%2Fapollo-studio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aykutsp","download_url":"https://codeload.github.com/aykutsp/apollo-studio/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykutsp%2Fapollo-studio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34318523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-editor","3d-modeling","3d-visualization","architectural-editor","architecture","browser-based","building-design","floor-plan","interactive","interior-design","parametric-design","real-time","web-cad"],"created_at":"2026-06-14T10:34:15.886Z","updated_at":"2026-06-14T10:34:17.054Z","avatar_url":"https://github.com/aykutsp.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"./favicon.svg\" width=\"64\" height=\"64\" alt=\"Apollo Studio\" /\u003e\n\n# Apollo - 2D \u0026 3D Architectural Studio\n\n### Browser-first Architectural Editor\n\nDraw floor plans in 2D. Walk through them in 3D. No install, no export step — just open the browser and start designing.\n\n\u003cbr/\u003e\n\n[![Live Demo](https://img.shields.io/badge/▶%20Live%20Demo-aykutsp.github.io-d99b4b?style=for-the-badge)](https://aykutsp.github.io/apollo-studio/)\n\n\u003cbr/\u003e\n\n[![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-c29a4a?style=flat-square)](./LICENSE)\n[![Commercial License](https://img.shields.io/badge/Commercial-Dual%20License-1a1d22?style=flat-square)](./COMMERCIAL-LICENSE.md)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178c6?style=flat-square\u0026logo=typescript\u0026logoColor=white)](./tsconfig.json)\n[![React](https://img.shields.io/badge/React-19-61dafb?style=flat-square\u0026logo=react\u0026logoColor=1a1d22)](https://react.dev)\n[![Three.js](https://img.shields.io/badge/Three.js-r184-1a1d22?style=flat-square\u0026logo=threedotjs\u0026logoColor=white)](https://threejs.org)\n[![Vite](https://img.shields.io/badge/Vite-7-646cff?style=flat-square\u0026logo=vite\u0026logoColor=white)](https://vitejs.dev)\n[![Status: Alpha](https://img.shields.io/badge/Status-Alpha-d99b4b?style=flat-square)](#status)\n[![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-3fb27f?style=flat-square)](./CONTRIBUTING.md)\n\n\u003c/div\u003e\n\n---\n\n## Overview\n\nApollo Studio is a real architectural editor that runs entirely in the browser. It bridges the gap between simple floor-plan web apps and heavyweight desktop CAD — giving you precision 2D drafting and a live 3D walkthrough of the same model, simultaneously, with no plugins or exports required.\n\nYour project is stored as plain JSON, fully portable and version-control friendly.\n\n---\n\n## Features\n\n**2D Drafting**\n- Draw walls and rooms with smart grid snap and orthogonal guides\n- Live dimension labels update as you draw\n- Snap to wall endpoints, grid intersections, and midpoints\n- Measure tool with click-to-place dimension markers\n\n**3D Viewport**\n- Real-time 3D preview synchronized with the 2D plan\n- ACES filmic tone mapping, contact shadows, three-point lighting\n- X-ray walls — walls between the camera and the room interior fade out automatically so you can always see inside\n- Optional high-quality render mode with ambient occlusion and bloom\n- Orbit, pan, and zoom with standard mouse controls\n\n**Object Library**\n- 50+ parametric furniture and fixture kinds: seating, tables, beds, kitchen cabinets, appliances, bathroom fixtures, lighting, decor\n- Kitchen casework with automatic base / wall / tall cabinet height placement\n- Hosted doors and windows that snap to walls with real cutout gaps\n- Import external GLTF/GLB models from a URL\n\n**Editor**\n- Command palette (`Ctrl+K`) — search and run any action by name\n- Full undo / redo on every edit\n- Inspector panel with position, rotation, scale, and material controls\n- Right-click context menu on any object or wall\n- Scene tree panel for navigating all entities\n- Export scene as GLB, OBJ, or STL\n- Autosave to IndexedDB — your work survives a tab crash\n- Save and open plain JSON project files\n\n---\n\n## Screenshots\n\n\u003e Sample projects are bundled and loadable from the top bar — try **Atelier Loft**, **Urban Apartment**, or **Studio Office**.\n\n| 2D Plan | 3D Walkthrough | Split View |\n|---------|---------------|------------|\n| ![2D plan view](./docs/assets/screenshots/2d.png) | ![3D viewport](./docs/assets/screenshots/3D.png) | ![Split view](./docs/assets/screenshots/split.png) |\n\n---\n\n## Getting Started\n\n```bash\ngit clone https://github.com/aykutsp/apollo-studio.git\ncd apollo-studio\nnpm install\nnpm run dev        # → http://localhost:5173\n```\n\n```bash\nnpm run build      # type-check + production bundle → ./dist\nnpm run preview    # serve the production bundle locally\n```\n\n---\n\n## Keyboard Shortcuts\n\n| Key | Action |\n|-----|--------|\n| `V` | Select tool |\n| `H` | Pan tool |\n| `W` | Draw wall |\n| `R` | Draw room (rectangle) |\n| `P` | Place selected component |\n| `M` | Measure |\n| `Ctrl+K` | Command palette |\n| `Ctrl+Z` | Undo |\n| `Ctrl+Y` / `Ctrl+Shift+Z` | Redo |\n| `[` | Toggle left panel |\n| `]` | Toggle inspector |\n| `Esc` | Cancel / clear selection |\n| `Del` | Delete selection |\n\n---\n\n## Feature Matrix\n\n| Area | Capability | Status |\n|------|-----------|--------|\n| Drafting | Wall · room · measure · snap · ortho guides | ✅ Ready |\n| Placement | Parametric catalog · hosted openings · drag-to-move | ✅ Ready |\n| 2D View | SVG canvas · zoom/pan · live dimensions | ✅ Ready |\n| 3D View | ACES · shadows · x-ray walls · HQ render toggle | ✅ Ready |\n| Selection | Click · drag · auto-inspector · keyboard delete | ✅ Ready |\n| Inspector | Position · rotation · footprint · height · material | ✅ Ready |\n| Undo / Redo | Command history — every edit reversible | ✅ Ready |\n| Command Palette | `Ctrl+K` search across all actions | ✅ Ready |\n| Context Menu | Right-click on objects and walls | ✅ Ready |\n| Export | GLB · OBJ · STL scene export | ✅ Ready |\n| Autosave | IndexedDB background save + session restore | ✅ Ready |\n| Project I/O | Deterministic JSON · schema-versioned | ✅ Ready |\n| Catalog I/O | Runtime-loaded catalogs · user-importable JSON | ✅ Ready |\n| AR / XR | WebXR room-scale on the shared scene graph | 🔜 Planned |\n| Multi-level | Floors and levels | 🔜 Planned |\n| Cabinetry suite | Parametric kitchen runs with auto-fill | 🔜 Planned |\n\n---\n\n## Project Structure\n\n```\napollo-studio/\n├── apps/\n│   └── web-editor/          Vite + React 19 app shell\n│       └── src/\n│           ├── App.tsx       Layout and state wiring\n│           ├── components/   Panels, toolbars, inspector\n│           ├── three/        Procedural 3D renderers\n│           └── utils/        Project and catalog I/O\n├── packages/\n│   ├── core-domain/         Entity types, geometry, catalog\n│   ├── editor-state/        Tools, commands, history\n│   ├── command-system/      EditorCommand interface\n│   └── design-tokens/       OKLCH palette + CSS variables\n├── public/\n│   ├── catalogs/            Runtime catalog JSON\n│   └── samples/             Bundled sample projects\n└── schemas/                 JSON schema + OpenAPI spec\n```\n\n---\n\n## Catalog Authoring\n\nCatalogs are plain JSON arrays of `ComponentDefinition`. Import one at runtime via the **Catalog** button in the top bar — it merges with the built-in library without replacing it.\n\n```json\n{\n  \"catalogId\": \"my-furniture\",\n  \"catalogLabel\": \"My Furniture\",\n  \"key\": \"lounge-chair-01\",\n  \"name\": \"Lounge Chair\",\n  \"category\": \"Armchair\",\n  \"family\": \"furniture\",\n  \"placementMode\": \"free\",\n  \"footprint\": { \"x\": 0.9, \"y\": 0.88 },\n  \"height\": 0.92,\n  \"procedural\": {\n    \"kind\": \"armchair\",\n    \"palette\": { \"primary\": \"#6b4a34\", \"frame\": \"#241812\", \"accent\": \"#b58a64\" }\n  }\n}\n```\n\nUse `\"placementMode\": \"hosted-wall\"` for doors and windows — the editor will snap them to wall offsets and refuse placement in open space.\n\n---\n\n## License\n\nApollo Studio is dual-licensed:\n\n- **Open-source** — [AGPL-3.0-or-later](./LICENSE). Forks and hosted modifications must publish source under the same terms.\n- **Commercial** — a separate license is available for closed-source products, OEM embedding, managed SaaS, or enterprise deployments. See [COMMERCIAL-LICENSE.md](./COMMERCIAL-LICENSE.md).\n\nThird-party attributions live in [NOTICE.md](./NOTICE.md).\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md). Open an issue before large refactors, keep PRs focused, and match the existing code style. For security disclosures see [SECURITY.md](./SECURITY.md).\n\n---\n\n## Acknowledgments\n\nRendering built on [Three.js](https://threejs.org), [react-three-fiber](https://docs.pmnd.rs/react-three-fiber), and [@react-three/drei](https://github.com/pmndrs/drei). Typography uses [Inter](https://rsms.me/inter/). Editor interaction patterns draw from SketchUp, Live Home 3D, and floor-plan.ai.\n\n---\n\n## Status\n\nApollo Studio is in **alpha**. The file format, procedural recipe schema, and component APIs may change before 1.0. Pin to a specific commit for anything you need to stay stable.\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cbr/\u003e\n\n[![Live Demo](https://img.shields.io/badge/▶%20Try%20Apollo%20Studio-Live%20Demo-d99b4b?style=for-the-badge)](https://aykutsp.github.io/apollo-studio/)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faykutsp%2Fapollo-studio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faykutsp%2Fapollo-studio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faykutsp%2Fapollo-studio/lists"}