Dataset overview
This dataset contains SimCrafter result data for an industrial robotic material-handling cell. The task is to design an automated solution for unloading baskets filled with square wooden blocks onto a transport system, with buffer storage for full and empty baskets. The guided variant further constrains the solution to one long conveyor, two six-axis robots, Euro pallet buffers, and suction grippers.
Top-level files
descriptive_input.txt: short, open-ended natural-language prompt used for the descriptive generation runs.
guided_input.txt: detailed prompt used for the guided generation runs, including required library components and layout constraints.
config.yaml: run configuration, including model names, similarity thresholds, layout solving, layout healing, library matching, and JSON repair settings.
Frontend.png: screenshot of the SimCrafter frontend during a generation run.
PREREQUISITES.html: This file lists the software needed to use the Python evaluator and the Unity visualization scripts included with this SimCrafter data bundle.
MANIFEST.TXT: inventory of all included files with media types and file sizes.
Generated layout candidates
The folder testgen/candidates/ contains 12 generated candidate layouts as JSON files. Each file stores a SimCrafter result with data.production_graph.nodes and data.production_graph.edges, plus reasoning, layout objectives, layout diagnostics, layout healing data, and, for most files, assembly routing data.
Candidate file names follow this pattern:
descriptive_*: generated from the short descriptive prompt.
guided_*: generated from the detailed guided prompt.
*_lib_*: generated with reuse of the existing SimCrafter/Roth model library.
*_nolib_*: generated without reusing the existing library, using generated Gen_* assets instead.
*_1, *_2, *_3: independent candidate runs for the same prompt/library setting.
For most analysis tasks, start with testgen/candidates/guided_lib_1.json. It has the highest score in the provided evaluation output, with overall quality 4.78, full component recall, full component precision, full variant accuracy, and no rule violations after validation.
Evaluation data
testgen/evaluation.csv: computed metrics for all 12 candidate JSON files. It includes component recall/precision, variant accuracy, edge recall/precision, rule violations after validation, layout validation, overall quality, and raw component/edge counts.
testgen/reference_model_template.yaml: ground-truth reference model used for evaluation. It defines the expected robots, conveyor, pallet buffers, suction grippers, graph relations, and forbidden safety/fence/door variants.
testgen/evaluate_sim_results.py: Python evaluator used to compare generated candidates against the reference model.
The supplied evaluation.csv already contains the evaluated results. To rerun the evaluator, use Python with PyYAML installed and provide the SimCrafter component library YAML from the main project:
cd testgen
python evaluate_sim_results.py --results candidates --reference reference_model_template.yaml --library ../../datagen/libraries/simcrafter_roth.yaml --out evaluation.csv
Adjust the --library path if the library YAML is stored elsewhere. The GLB cache in this dataset is enough for visualization, but the evaluator expects the separate library YAML file.
3D asset cache
The folder LibraryCache/ contains GLB models used for visualization. GLB is the binary glTF 3D model format. The accompanying .meta files are Unity metadata files.
LibraryCache/roth/: 38 original SimCrafter/Roth library assets, such as Euro_pallet.glb, Conveyor_L2500.glb, Robot_arcMate_120iD.glb, Robot_arcMate_50iC_5L.glb, and Suction_Gripper.glb. Use this cache for *_lib_* candidates.
LibraryCache/open/: 66 generated or open-ended Gen_* assets. Use this cache for *_nolib_* candidates.
Unity visualization
The folder 3DUnityVisualization/ contains Unity C# scripts for importing a candidate JSON layout and creating a Unity scene from the cached GLB models.
LayoutJsonImporterWindow.cs: Unity editor window. It appears under SimCrafter/Layout JSON Importer and Tools/Layout/Import JSON (Create Scene).
GeneratedComponentTag.cs: attaches imported component metadata to generated scene objects.
GeneratedLayoutLabel.cs and GeneratedLayoutLabelManager.cs: create and position readable labels for imported components.
SimpleWalkCamera.cs: optional camera controller for moving around the generated scene.
To visualize a candidate in Unity:
- Copy the scripts from
3DUnityVisualization/ into a Unity project. Place LayoutJsonImporterWindow.cs under an Assets/Editor/ folder so Unity treats it as an editor script.
- Copy
LibraryCache/roth/ and LibraryCache/open/ into the Unity project under Assets/Generated/LibraryCache/, preserving the folder names.
- Open
SimCrafter/Layout JSON Importer in Unity.
- Select a candidate JSON from
testgen/candidates/.
- Disable
Fetch Model Library to use the local cache.
- Set
Asset Cache to Assets/Generated/LibraryCache.
- Set
Variant to roth for *_lib_* candidates or open for *_nolib_* candidates.
- Run the import. The importer creates and opens a Unity scene, by default at
Assets/Scenes/Generated/LayoutGenerated.unity.
Recommended starting points
- Use
guided_input.txt and descriptive_input.txt to understand the two prompt conditions.
- Use
testgen/evaluation.csv for quantitative comparison across candidates.
- Use
testgen/candidates/guided_lib_1.json as the strongest generated candidate in this bundle.
- Use
LibraryCache/roth/ and LibraryCache/open/ with the Unity importer to inspect the corresponding 3D layouts.