This repository contains the official project website for TreeStruct3D: Enabling Structural Editability in Agentic Procedural 3D Modeling.
- Live site: https://www.ruiding-feng.com/treeStruct3D/
- Research code: https://github.com/RichardFeng000/TreeStruct3D
The website first introduces the research problem, the text-to-program pipeline, geometry-dependent anchors, and controlled editing examples using the paper's original figures. Its reading order follows the research-page presentation of 3DCodeBench. See figure sources.
The interactive inspector appears directly after the introduction. It is
adapted from the project's visual_validation/frontend/model_playground.html
and uses its three-column desktop layout: model controls, structure graph,
and the actual GLB model. The default is 3D Hierarchy; anchors on the model
appear only while the corresponding part is highlighted. View tabs, search, display filters, and relation details are directly
available; smaller screens stack the panels.
Select a part in either the tree or the model to highlight it in both views.
The explorer includes orbit/pan/zoom, model switching, wireframe, part isolation,
shared-anchor inspection, five graph views, and transparent graph PNG export.
The white background, light-gray panels, and blue accents follow the palette of 3DCodeBench. The layout and inspection behavior come from the local TreeStruct3D toolkit.
The demo fixes the paper's 20 cases into four model collections, with five cases
per collection: four appendix examples and one Figure 1 comparison example.
Every part is shown in an expanded list with its own slider, numeric input,
and reset button. Drag its scale from 0.4× to 1.6× in 0.01 increments, or select
it directly in the model or structure tree.
Edits to different native parameters remain combined until reset. The browser
uses Blender geometry response data, native parameter dependencies, and small
source-specific geometry rules. Shared mesh instances follow the same original
PART_PARAMS control. Nonlinear connections, topology changes, and nearest-vertex
attachment choices are retained rather than approximated by scaling an entire
mesh around one point. Changed previews do not reuse saved pass/fail results.
Reset restores the matching baseline and its available checks. The model assets
also include baked procedural base colors. See the measured accuracy and
rendering limits in native fidelity.
The Figure 1 cases also provide a Paper comparison view with its own five archived states, switching both methods' original renders together. This selection is independent of continuous geometry edits. These are selected qualitative examples, not aggregate benchmark results or validation of arbitrary parameter values.
See the fixed-demo documentation and the complete local source mapping. Native editing of arbitrary parameters remains available in the local toolkit.
The project requires Node.js 22.13 or newer.
npm ci
npm run devFor a local review on a stable port:
npm run dev -- --host localhost --port 5179Open http://localhost:5179/. Review the introduction and interactive behavior
locally before publishing. Do not push or deploy a UI change until the owner
explicitly approves that release; pushing main triggers GitHub Pages.
Check the application and curated examples:
npm run lint
npm run check:explorerThe explorer checks validate mesh identities, file hashes, graph references, selection/material restoration, and strict shared-anchor rendering. Native editing checks compare the final rendered vertices to independent Blender rebuilds, including simultaneous parameter changes. They run against real saved examples and renderer helpers without a browser.
Build the deployable application:
npm run buildBuild the static snapshot used at the portfolio subpath:
npm run build:portfolioPushes to main build and deploy the standalone GitHub Pages mirror at
richardfeng000.github.io/TreeStruct3D-Website/. The custom-domain release is
stored as a reviewed static snapshot in the Richard_website portfolio
repository, so it is served at www.ruiding-feng.com/treeStruct3D/
without changing the root portfolio page.
To refresh the portfolio snapshot, run npm run build:portfolio and replace
Richard_website/public/treeStruct3D/ with dist/client/, then build and deploy
the portfolio. GitHub Pages redirects /treeStruct3D to /treeStruct3D/.
The portfolio publishes only this snapshot; the legacy
public/TreeStruct3D-Website/ directory has been removed.
npm run build:pages retains the /TreeStruct3D-Website asset prefix for the
standalone repository mirror. npm run build:portfolio sets
PAGES_BASE_PATH=/treeStruct3D for both the export and asset normalization.
Website source code and the adapted TreeStruct3D inspector are released under the Apache License 2.0. Vendored Three.js r166 modules use the MIT license; see third-party notices. Paper figures remain part of the TreeStruct3D research project.