The 2,922-file monorepo is an editor and a toolkit
Pascal Editor covers more than drawing walls in a browser. Its packages split scene schemas, WebGPU rendering, editing controls, built-in node types, capture sessions, IFC conversion, command-line management, and MCP access. The core scene is a flat node graph stored through Zustand, while render systems update dirty geometry in React Three Fiber. The standalone Next.js editor assembles those pieces for people who want the finished interface.
That scope has a real footprint. Our checkout held 2,922 files, about 487,288 source lines, and 107.6 MB before installation. Published use also requires several packages: the viewer guide installs core, viewer, editor, and nodes, plus peer dependencies such as Next.js, React, Three.js, React Three Fiber, Drei, and Zustand. The built-in plugin must load before the Viewer mounts or scene nodes have no definitions to render. Pascal makes extension possible, but the package boundary is something an integrator must understand.
Node.js 22.13 starts a local editor and MCP service
Node.js 22.13 or newer is the documented floor for the one-command local install. Running npx @pascal-app/cli editor downloads a versioned runtime, selects available loopback ports, checks editor and MCP health, and opens a .localhost URL. Projects live separately in ~/.pascal/data/pascal.db, so updating the runtime does not replace them.
Local security choices are sensible. Both services bind to 127.0.0.1, and MCP uses a random token kept in a private runtime directory rather than copied into client settings. pascal mcp setup codex and pascal mcp setup claude create stable connectors that discover the changing port. The MCP package can also run headlessly under Node.js 22.13 or Bun with local SQLite and no browser, WebGPU, React, or external database. Binding HTTP beyond loopback requires a bearer token and an allowed origin.
What happened when we ran it
Our sandbox installed Pascal Editor in 108 seconds, adding 1,049 packages and consuming 1,288 MB. The Turborepo build succeeded in 151 seconds. Tests then exited with code 1 after 12 seconds. This was a fresh unprivileged container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets, using commit 19327a9. The repository included 3 CI workflow files, a Dockerfile, a compose file, and monorepo workspaces, but no top-level tests directory.
The failing log tail identifies @pascal-app/viewer#test and nothing more specific. It reports 9 successful tasks out of 16, with 6 cached, before Turbo exited. Other summaries show 16 capture-protocol tests, 9 IFC-converter tests, and 25 capture-viewer tests ran; a core hit-test case also passed. We will not guess which viewer assertion or setup step failed because the supplied tail does not say. The decision-grade finding is that this checkout built, then its full test command did not pass in our container.
Editor beta.5 can pull Node code into browser builds
Open issue 715 reports that @pascal-app/editor beta.5 imports a Manifold print-export path that eventually reaches node:module. The reporter's optimized Next.js and Webpack build then fails before browser runtime, even though ordinary editor checks work. That is narrow enough to act on: teams embedding the public editor entry point should reproduce their production bundle before upgrading.
The 1,288 MB installation also warns against treating Pascal as a drop-in widget. The viewer expects a WebGPU-capable browser and an explicit plugin load. The editor adds print export, direct manipulation, floor-plan state, and more package edges. Issue 617 records a consumer type-check failure tied to noUncheckedIndexedAccess, while issue 715 shows a server-only dependency reaching a browser build. Package users should pin a tested set of versions and build a small external host in CI rather than relying only on this monorepo's own build.
Local scan upload and save/load still have data gaps
Version 0.1.5 of the local CLI is named in issue 645, where choosing a GLB scan produces no request, progress indicator, or scene node because the local runtime does not supply the upload callback. Issue 733 describes local scan or guide files remaining in IndexedDB after their last scene reference is deleted. Issue 734 covers the opposite failure: collections disappear during Save Build and Load Build because neither export nor validation carries them through. These are specific edges, yet they touch the trustworthiness of local project data.
The failed 12-second suite raises the cost of dismissing those reports as isolated. A buyer should test the same operations used in production: save and reload a representative project, delete large local assets, export floor plans, import an IFC sample, and reconnect the chosen MCP client. Issue 629 supplies one IFC slab that imports with the wrong offset and thickness. Issue 696 reports strict JSON Schema validation rejecting local MCP tool output in Claude Desktop. Pascal covers many workflows, and each boundary deserves its own acceptance fixture.
September activity is ahead of the v0.9.1 release page
The repository had 21,864 stars and 38 open issues and pull requests when fetched. An issue-only search found 26 open issues, several updated on August 31, 2026. The last push was September 2. GitHub's latest-release endpoint returned v0.9.1 from June 10, while current issue reports refer to later beta packages. That combination shows continuing work after the named release, so the June date alone is poor evidence of neglect. It also makes version pinning more important because main, stable release notes, and beta packages describe different checkpoints.
Pascal Editor earns a serious trial for teams that want a programmable building editor in the browser, especially when MCP access to the same local SQLite scenes is useful. The 151-second successful build shows the monorepo can assemble in a plain container. The 1,049-package install, failed viewer test task, and open data-path bugs stop us from calling it a safe dependency upgrade without local checks. Use the CLI for a low-cost evaluation, then make the exact browser and file workflows you depend on pass before committing.

