Skip to main content

Directory Structure

In this project, the Core implementations such as geometry processing and node graphs are managed by the @nodi/core module, and managed by the @nodi/web module, which is available on the web.

.โ”œโ”€โ”€ core: @nodi/coreโ””โ”€โ”€ web: @nodi/web


@nodi/core is a collection of reusable implementations that are referenced by other packages, and It manages core implementations such as geometry processing and node graphs.

โ”œโ”€ preprocess: Scripts to automate the creation of Node class dictionary objects, etc.โ”œโ”€ src|   โ”œโ”€ data: Type information for data handled by nodes and implementation of DataTreeโ”‚   โ”œโ”€ io: Classes to manage Nodi IOโ”‚   โ”œโ”€ lib: Libraries that are not supported by npm (vrbnurbs)โ”‚   โ”œโ”€ mathโ”‚       โ”œโ”€โ”€ geometry: Geometric representation classes and implementations of various geometric operationsโ”‚       โ”œโ”€ misc: Utility implementationsโ”‚       โ”œโ”€ primitive: Basic classes for complex numbers, NDomain, etc.ใ€€โ”‚   โ”œโ”€ misc: Interface and event definitions, etc.โ”‚   โ”œโ”€ nodes: Class files for all nodesโ”‚   โ”œโ”€ preview: Implementation for previewโ”œโ”€ test: Test code by jestโ”œโ”€ types: Type definition fileโ”œโ”€ wasm: WebAssembly module by Rust


@nodi/web uses NuxtJS as its main framework.

Basically, we follow the structure of NuxtJS, but However, it should be noted that we are developing the implementation of the node-based editor part in a state that is separated from Vue as much as possible.

This is because we intend to modularize the node-based editor part in the future, so that it can be run on a different application.

.โ”œโ”€ assetsโ”‚   โ”œโ”€ images: Image materialโ”‚   โ”œโ”€ json: Text to manage node descriptions, etc.โ”‚   โ”œโ”€ styles: Style filesโ”‚   โ””โ”€ scripts|       โ”œโ”€ editor: Editor UI implementation|       โ”œโ”€ service: Implementation for services such as project and user management|       โ””โ”€ viewer: Viewer UI implementationโ”œโ”€ componentsโ”œโ”€ pages.. (Others are basically in accordance with NuxtJS structure, so omitted)