Prepare Project
Place .json file exported from app.nodi3d.com
Install
nodi-modular is available via npm:Copy
npm install nodi-modular
"nodi-modular"
Copy
import init, { Modular } from "nodi-modular";
Usage
- JS
- React
Copy
import init, { Modular } from "nodi-modular";
// Initialize the WebAssembly module
await init();
// Create a new instance of the Modular
const modular = Modular.new();
// Load a node graph in JSON format as a string
modular.loadGraph(JSON.stringify({
nodes: { ... },
}));
// Evaluate the node graph to get the result
const result = modular.evaluate();
// Geometry identifiers are the keys of the geometries in the result
const { geometryIdentifiers } = result;
geometryIdentifiers.forEach((identifier) => {
// Get the geometry variant by identifier
// variants are curve, surface, mesh, and etc.
const geometry = modular.findGeometryById(identifier);
// Get the geometry interop by identifier
// geometry interop has the data that can be rendered as a polygonalized data (polyline or triangle mesh)
const interop = modular.findGeometryInteropById(identifier);
});
// Get the nodes of the node graph
const nodes = modular.getNodes();
// Find the node by the variant and label
const numberOfGrid = nodes.find((n) => n.variant === "Number" && n.label === 'number of grid');
// Each nodes have the properties that can be changed
// What properties can be changed depends on the node variant, so you need to check the node variant's properties (numberGrid["properties"])
modular.changeNodeProperty(numberOfGrid.id, {
name: "value",
value: {
type: "Number",
content: 30,
}
});
// re-evaluate the node graph to get the result after the property change
const resultAfterPropertyChange = await modular.evaluate();