OpenSource-Hub

editor

Application

pascalorg/editor

A 3D building editor for creating and sharing architectural projects.

Overview

Pascal Editor is a web-based 3D building editor built with React Three Fiber and WebGPU. It allows users to create, edit, and share architectural designs with a node-based scene graph and real-time rendering.

README Preview

# Pascal Editor\n\nA 3D building editor built with React Three Fiber and WebGPU.\n\n[](LICENSE)\n[](https://www.npmjs.com/package/@pascal-app/core)\n[](https://www.npmjs.com/package/@pascal-app/viewer)\n[](https://discord.gg/SaBRA9t2)\n[](https://x.com/pascal_app)\n\nhttps://github.com/user-attachments/assets/8b50e7cf-cebe-4579-9cf3-8786b35f7b6b\n\n\n\n## Repository Architecture\n\nThis is a Turborepo monorepo with three main packages:\n\n```\neditor-v2/\n├── apps/\n│   └── editor/          # Next.js application\n├── packages/\n│   ├── core/            # Schema definitions, state management, systems\n│   └── viewer/          # 3D rendering components\n```\n\n### Separation of Concerns\n\n| Package | Responsibility |\n|---------|---------------|\n| **@pascal-app/core** | Node schemas, scene state (Zustand), systems (geometry generation), spatial queries, event bus |\n| **@pascal-app/viewer** | 3D rendering via React Three Fiber, default camera/controls, post-processing |\n| **apps/editor** | UI components, tools, custom behaviors, editor-specific systems |\n\nThe **viewer** renders the scene with sensible defaults. The **editor** extends it with interactive tools, selection management, and editing capabilities.\n\n### Stores\n\nEach package has its own Zustand store for managing state:\n\n| Store | Package | Responsibility |\n|-------|---------|----------------|\n| `useScene` | `@pascal-app/core` | Scene data: nodes, root IDs, dirty nodes, CRUD operations. Persisted to IndexedDB with undo/redo via Zundo. |\n| `useViewer` | `@pascal-app/viewer` | Viewer state: current selection (building/level/zone IDs), level display mode (stacked/exploded/solo), camera mode. |\n| `useEditor` | `apps/editor` | Editor state: active tool, structure layer visibility, panel states, editor-specific preferences. |\n\n**Access patterns:**\n\n```typescript\n// Subscribe to state changes (React component)\nconst nodes = useScene((state) => state.nodes)\nconst levelId = useViewer((state) => st

FAQ (1)

Troubleshooting
How to fix 'CPU doesn't support the bmi2 instructions' panic and 'Cannot find module lightningcss.darwin-x64.node' error when running Next.js with Bun on Apple Silicon?

1. Upgrade Next.js to version 16.2.2 or higher to resolve the qfilter BMI2 panic. 2. For the lightningcss architecture mismatch, run the development server with bun --bun run dev instead of bun run dev to force Bun to use the correct native module for arm64. If problems persist, ensure Bun version 1.3.12+ is installed, both Bun and shell are running native arm64 (not under Rosetta), and clean install by removing .next and node_modules before bun install.

GitHub Issue #254