Pascal Editor (~18.7k★, MIT) is the open-source answer to “can I ship a real building editor in the browser?” — not a grey-box BIM toy, but a WebGPU + React Three Fiber stack with walls that miter, doors that CSG-cut, and an npm surface you can embed.
Hosted product: editor.pascal.app. Repo: pascalorg/editor.
If Pascal is the structure layer, bunpav.com is the AI prop layer explainx.ai already covers — text/photo-to-3D, Primitive Lab, and img2threejs code-first meshes. Use Pascal for the building; use bunpav when you need furniture, set dressing, or jam props without a modeling career.
TL;DR
| Question | Answer |
|---|---|
| What is it? | Open 3D architectural editor + embeddable viewer |
| License / stars | MIT · ~18.7k★ (Jul 2026) |
| Stack | React 19, Next.js, Three.js WebGPU, R3F, Zustand, Zod, Zundo |
| npm | @pascal-app/core · viewer · editor · nodes · mcp |
| Try hosted | editor.pascal.app |
| AI agents? | Yes — @pascal-app/mcp |
| AI assets on top? | bunpav.com — text/photo-to-3D + GLB export |
| Dev command | bun install then bun dev from repo root → localhost:3002 |
What people actually ask
Is this another closed “AI architecture” SaaS?
No. Pascal’s pitch on the product site is blunt: the viewer, editor, and scene engine are published on npm and developed in the open. You can embed, fork, or let agents drive scenes. That is closer to a platform SDK than to a black-box room sketcher.
Do I need BIM / Revit knowledge?
No for the happy path. The node model is a flat Record<id, Node> with parentId — Site → Building → Level → Wall / Slab / Zone / Item. Architects will want IFC workflows; indie builders and game level designers can start from walls and zones in the browser.
WebGPU — will my laptop choke?
Pascal targets WebGPU via Three.js. Expect modern Chromium. If you are shipping to older Safari or locked-down enterprise browsers, test early — this is not a Canvas2D floorplan.
How is this different from “just use Blender”?
Blender is a DCC. Pascal is a domain editor: hierarchical selection (site → building → level → zone → items), dirty-node geometry systems, spatial placement validation, and shareable projects. Different job.
Architecture in one screen
Turborepo packages (from the README):
| Package | Job |
|---|---|
@pascal-app/core | Zod schemas, useScene (Zustand + IndexedDB + Zundo), registry, spatial grid, geometry systems |
@pascal-app/viewer | R3F Viewer, level modes (stacked / exploded / solo), post-FX |
@pascal-app/editor | Tools, selection, panels |
@pascal-app/nodes | Built-in plugin: definitions, renderers, systems |
@pascal-app/mcp | Headless MCP server for AI hosts |
apps/editor | Next.js host at port 3002 |
Data flow that matters: tool click → useScene.createNode / updateNode → node marked dirty → React mounts renderer + useRegistry → useFrame system rebuilds mesh → dirty cleared.
That dirty-node loop is why wall thickness changes do not re-triangulate the whole site every frame.
Why agents care about a scene graph
Flat Record<id, Node> with parentId is LLM-friendly: tools can create/update/delete by id without learning Blender’s outliner. Combined with @pascal-app/mcp, a host like Claude can drive walls and zones as structured edits instead of freeform mesh soup. That is the bridge from MCP 2026-07-28 to spatial products — headless servers that mutate domain state, not only fetch JSON docs.
Builder checklist for agent-driven scenes:
- Keep node schemas Zod-validated so bad tool args fail closed.
- Expose idempotent create/update tools (same id → same result).
- Log dirty-node rebuilds when debugging “agent built nothing.”
- Prefer zone/item edits over raw triangle edits for LLM plans.
- Version shareable projects so human review can diff scenes.
Embed the viewer (copy-paste)
npm install @pascal-app/core @pascal-app/viewer @pascal-app/editor @pascal-app/nodes
import { loadPlugin } from '@pascal-app/core'
import { builtinPlugin } from '@pascal-app/nodes'
await loadPlugin(builtinPlugin)
// then mount <Viewer> from @pascal-app/viewer
Always run bun dev from the monorepo root when developing packages — root watchers rebuild core/viewer so Next hot-reloads correctly.
MCP: let agents reshape the building
@pascal-app/mcp (public since v0.8.0, still updating through Jul 2026) drives @pascal-app/core without a browser. Official release notes advertised tools for scene query/mutation, undo/redo, export, validation, and vision — plus prompts like from_brief and renovation_from_photos.
Honest limit from the package docs: headless mode does not regenerate derived geometry (mitered walls, CSG cutouts). Agents mutate node data; open the scene in @pascal-app/viewer for mesh truth.
For MCP protocol context, see explainx.ai’s MCP guide and the 2026-07-28 stateless spec.
Suggested agent loop
from_brief/ natural-language plan → create Site/Building/Level skeleton- Tool calls to place walls/zones with validated dimensions
validationtool → fix collisions / missing parents- Human opens viewer for mesh truth and aesthetic pass
- Export / share project id for review
If you skip step 4, you will ship node graphs that look correct in JSON and wrong in 3D — the documented headless geometry limit.
bun add @pascal-app/mcp
# then wire pascal-mcp into Claude Code / Cursor like any MCP server
Plugins without a secret internal API
Pascal’s extensibility story matches the README: a plugin ships node kinds (schema, 2D/3D render, placement tools, inspector) and left-rail panels through the same Plugin manifest builtins use. Starter example: pascalorg/plugin-trees.
Who should adopt Pascal this quarter
| Team | Fit |
|---|---|
| Indie builders / educators | High — browser editor, open npm packages |
| AEC firms on Revit/IFC | Medium — use as companion digital twin, not overnight BIM replace |
| Game / metaverse level design | High — zones/items map cleanly to gameplay volumes |
| Agent platform companies | High — MCP + Zod schemas are the point |
WebGPU requirement means Chromium-first demos; budget a fallback message for locked-down Safari enterprise fleets.
Pascal vs bunpav — structure vs AI assets
| Layer | Tool | Best for |
|---|---|---|
| Building graph | Pascal | Walls, levels, zones, digital twins, agent-edited floorplans |
| AI / procedural props | bunpav | Text-to-3D, photo-to-3D, Primitive Lab sliders, GLB/FBX/OBJ export |
| Photo → editable Three.js code | img2threejs + bunpav lane | Diffable factories, sockets, not opaque multi-MB meshes |
| Streaming world recon | LingBot-Map | Outdoor / long trajectory geometry — different problem |
explainx.ai’s read: Pascal’s own product surface already advertises Generate with AI, Capture, Studio, and MCP. That is in-scene AI. bunpav.com is the complementary stack when you want game-ready or mockup meshes (credits from ~$9, no subscription required for packs) to drop into Unity, Unreal, Blender — or beside a Three.js building viewer. Structure in Pascal; bake the furniture on bunpav.
Getting started checklist
- Open editor.pascal.app and walk a community project.
- Clone pascalorg/editor →
bun install→bun dev. - Skim
packages/core/src/schema/anduse-scene.tsbefore writing a plugin. - If you want agent edits, install
@pascal-app/mcpand point your host atpascal-mcp. - If you need props/SFX/levels for a game or furnished demo, open bunpav.com and export GLB / MP3 / JSON as needed.
Limitations (read before you star-farm)
- WebGPU dependency — verify target browsers.
- MCP headless ≠ rendered geometry until a viewer host runs systems.
- Issue tracker is active (15+ open issues / 16+ PRs at time of writing) — treat as a fast-moving monorepo, pin npm versions in production.
- Pascal is architecture-first; it is not a general sculptor. For organic / stylized props, use bunpav or Blender.
Local tryout script
git clone https://github.com/pascalorg/editor
cd editor && bun install && bun dev
# open localhost:3002 — build a two-room level, then wire @pascal-app/mcp
Push an agent to create walls from a brief, then open the viewer to confirm meshes. If headless validation passes but walls look wrong, you hit the documented derived-geometry limit — that lesson is the point of the first afternoon with Pascal.
FAQ
IFC import? Not the day-one story — node graph first; AEC bridges later. Mobile editing? Viewer may work; treat editor as desktop Chromium. Multiplayer? Check upstream roadmap; do not assume OT/CRDT yet. Why bun? Monorepo tooling — follow upstream; npm consumers still get packages. Agent geometry wrong? Headless skips derived meshes — open viewer.
Pascal is an open building OS for agents and humans. Start with a two-room scene before you promise digital-twin miracles to a client.
Closing note for explainx.ai readers
This launch moves fast; verify primary docs before you standardize tooling or brief a client. Re-check availability, pricing, and model IDs on the official pages linked above, then tell us what broke in production so we can update the guide. Follow @explainx_ai for follow-ups when the vendors ship the next patch — and prefer measured evals on your own traffic over screenshot economics. If you only needed a headline, you already have it; if you are implementing, the checklists above are the part that saves a weekend.
Related on explainx.ai
- bunpav — procedural 3D, Game Lab, Audio Lab
- img2threejs — photo to procedural Three.js + bunpav
- What is MCP?
- MCP 2026-07-28 — stateless core
- LingBot-Map — streaming 3D reconstruction
- What are agent skills?
- NVIDIA SIGGRAPH 2026 — Blender MCP & physical AI
- Grok Build Mode — prompt-to-app
Sources
- pascalorg/editor on GitHub
- editor.pascal.app
- @pascal-app/viewer on npm
- @pascal-app/mcp on npm
- v0.8.0 — MCP on npm
- bunpav.com
Star counts, package versions, and product features change quickly. Snapshot as of July 29, 2026.
