# Astral3D builds its editor from a pnpm workspace and leaves physics on the roadmap

> Astral3D is a Vue3 and Three.js 3D editor with a matching engine, laid out as a pnpm workspace with editor, sdk, docs and example packages. The engine side of the stack is one release old, the roadmap items are still empty, and the license field and the license section of the README do not say the same thing.

**mlt131220/Astral3D** — 基于Vue3 + THREE.JS 免费开源的三维引擎及配套编辑器，包含BIM轻量化、CAD解析预览、粒子系统、插件系统等功能。               A free and open-source 3D engine based on Vue3 + THREE.JS and its accompanying editor, featuring functions such as BIM lightweighting, CAD parsing preview, particle system, and plugin system.

- Repository: https://github.com/mlt131220/Astral3D
- Website: https://3d.astraljs.com
- Stars: 2,509 · Forks: 495
- Language: JavaScript
- License: Apache-2.0
- Published: 2026-09-28 · Updated: 2026-09-28 · Language: en
- Canonical page: https://hysenlabs.com/projects/mlt131220-astral3d

## The Node version floor in the README does not match the manifest

The prerequisites section asks for Node.js 23.11.x or newer and PNPM. The root manifest is looser: its engines field asks only for `>=23.0.0`. Both numbers can be satisfied at once, but only one of them is checked by tooling, so a machine on Node 23.5 passes the manifest and falls outside what the README asks for. The package manager is pinned as well, with `pnpm@10.8.1` in the package manager field and a `.npmrc` at the repository root.

The rest of the root manifest is thin. It declares one development dependency, `prettier` at `^3.7.4`, no runtime dependencies and an empty keywords array. Everything the engine and editor actually load therefore lives in the workspace packages rather than at the top level, which is what makes the local start sequence in the README longer than a single install command. The root package identifies itself as `astral3d`, described as Astral3D Engine, authored by ErSan.

## The dev script skips the SDK build that the production build runs first

The workspace is the reason the quick start has five commands in it:

```bash
    git clone https://github.com/mlt131220/Astral3D.git

    cd Astral3D
    pnpm install
    pnpm run sdk:build
    pnpm run editor:dev
```

The root scripts show why the order matters. `editor:dev` is only `pnpm run -C packages/editor dev`, so it starts the editor without touching the SDK. `editor:build` is `pnpm run sdk:build && pnpm run -C packages/editor build`, which compiles the SDK first and refuses to go on if that step fails. The README therefore asks for the SDK build by hand in the local flow, because the dev script does not do what the build script does.

Alongside those two, the workspace holds `packages/sdk`, `packages/editor`, `packages/docs` and `packages/examples`, each reached through `pnpm run -C`, plus a shared `common/` directory at the root and a `pnpm-workspace.yaml` that wires them together. Documentation and the example applications have their own dev and build commands, so the repository is four applications rather than one.

## The license field and the license section of the README disagree

The license field on the repository says Apache-2.0. The license section of the README, which is written in Chinese, says the project adopts the open source license in the LICENSE file without naming which one, and then lists supplementary terms. Personal study and secondary development are allowed. A copyright notice is required. Commercial use needs authorization. Use that competes with 杭州星孪数字科技, or illegal use, is forbidden.

Those terms sit awkwardly beside an Apache-2.0 field, and the README points at a LEGAL.md file for the complete legal statement and a CONTRIBUTING.md for contributions. Nothing in the documentation resolves which text governs, so anyone planning a commercial deployment has to read LEGAL.md and settle it there. A permissive license field on a hosting page is not the same thing as permission to ship the editor inside a product, and the two texts in this repository do not agree on the point.

The description at the repository root is also bilingual: the Chinese half calls it a free and open-source 3D engine based on Vue3 and Three.js with its accompanying editor, covering BIM lightweighting, CAD parsing preview, a particle system and a plugin system.

## Physics, WebGPU and multiplayer are on the coming list, not in the build

The README splits its own capabilities in two, and the split is worth reading carefully. Shipped: support for more than 30 model formats including GLTF, OBJ, FBX, GLB, RVT and IFC; lightweight display of BIM models in RVT and IFC; CAD drawing parsing for DWG and DXF; chunked scene storage and loading; and an animation editor. Extensions: a plugin system, a script runtime, a particle system, a weather system, cloud storage integration and an asset center.

Listed as coming next are a physics engine, WebGPU support, data components over API and WebSocket, a low-code data screen, and WebSocket based multiplayer collaboration. None of these are in the tree, so an evaluation that depends on physics simulation, WebGPU rendering or several people editing the same scene has to treat those as work still to be done. The same split applies to the README's own tech stack heading, which is followed by nothing at all before the quick start begins.

## Cloud storage integration points at a backend kept in another repository

The engine and the editor live here. The server side does not. Under the ecosystem section the README links a separate backend implementation at `github.com/yx8663/astral-service`, under a different account, while listing cloud storage integration among the extension capabilities of this project. Anything that needs a running backend therefore depends on code maintained somewhere other than this repository, and the version pairing between the two is not stated.

Three separate hosts appear across the project, and they are not interchangeable. The homepage field points at `3d.astraljs.com`, the editor is demonstrated at `editor.astraljs.com`, and the documentation centre is at `editor-doc.astraljs.com`, which is linked over plain http rather than https while the other two are https. The repository itself is mirrored on Gitee under the same owner name, and the README is also published in English at README.en.md.

## The community and support tables in the README carry no text

Two tables in the README render as empty rows. The community section is a table whose header row holds a truncated image reference ending in `-07C160?logo=wechat&logoColor=white)` and whose single cell contains nothing, so the intended scan-to-join contact is not readable in the file. The support section is the same shape, with 支付宝 and 微信 as column headers and no cell content under either.

The README in the repository is the Chinese version, and the English one is a separate file, `README.en.md`, listed in the repository tree alongside `CONTRIBUTING.md`, `LEGAL.md` and the license file. State of the release history is worth pairing with that: the only published release is 1.0.0, named Astral 3D Engine and dated 2025-10-04, and the default branch was last pushed on 2026-09-29. A project with one release a year old and a tree carrying four workspace packages and its own dev container configuration reads as one still being built in the open, which is a fair reason to expect the roadmap items to move.

## Conclusion

Astral3D is worth an evaluation if you need a browser based 3D editor for BIM or CAD review and are prepared to build from source, since the quick start needs a manual SDK build before the editor starts and the only published release is 1.0.0 from 2025-10-04. Before any commercial use, read LEGAL.md rather than the license field: the license on the repository says Apache-2.0, while the README attaches supplementary terms requiring authorization for commercial use and forbidding use that competes with a named company. For anything beyond viewing and secondary development, budget for the missing pieces yourself, because the physics engine, WebGPU support, data components and multiplayer collaboration are all still on the coming list.

## FAQ

### What does mlt131220/Astral3D need before I can run it locally?

Node.js 23.11.x or newer and PNPM. The documented sequence is a clone of the repository, a change into the Astral3D directory, pnpm install, pnpm run sdk:build and pnpm run editor:dev, and the root manifest pins the package manager at pnpm@10.8.1.

### Can I use Astral3D in a commercial product?

The license field on the repository says Apache-2.0, but the README attaches supplementary terms: a copyright notice is required, commercial use needs authorization, and use that competes with 杭州星孪数字科技 or is illegal is forbidden. The complete statement is in LEGAL.md.

### Does Astral3D have a physics engine or WebGPU support yet?

No. A physics engine, WebGPU support, data components over API and WebSocket, a low-code data screen and WebSocket multiplayer collaboration are all listed as coming next rather than as shipped capabilities.

### Where is the backend for Astral3D?

Outside this repository. The README links a separate backend implementation at github.com/yx8663/astral-service, while cloud storage integration is one of the extension capabilities listed for the engine and editor here.

## Sources

- [License: Apache-2.0](https://github.com/mlt131220/Astral3D/blob/main/LICENSE)
- [mlt131220/Astral3D on GitHub](https://github.com/mlt131220/Astral3D)
- [Project website](https://3d.astraljs.com)
- [README](https://github.com/mlt131220/Astral3D/blob/main/README.md)
- [Releases](https://github.com/mlt131220/Astral3D/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mlt131220-astral3d
