# Model rendering study — assets and reproducibility

Accessed 2026-09-08. Original model authorship is separate from this site's viewer, interactions and technical explanation.

## BoomBox

- Author: Microsoft. License: CC0 (Creative Commons Zero v1.0 Universal).
- Upstream asset-specific attribution and license: https://github.com/KhronosGroup/glTF-Sample-Assets/blob/0b4f3a5862f3037c7092206e75c6f2a31a504ca5/Models/BoomBox/README.md
- Asset repository: https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/BoomBox
- Original GLB: https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Assets/0b4f3a5862f3037c7092206e75c6f2a31a504ca5/Models/BoomBox/glTF-Binary/BoomBox.glb
- Local: boombox.glb, 10,614,184 bytes.
- SHA256: f8b918445ebdd006768232205a62f5182d2208ca57f84c6ccc084943c0bc8f15.
- No binary modifications. Upstream asset README is preserved as BoomBox-README.md.
- CC0 text: https://creativecommons.org/publicdomain/zero/1.0/legalcode

This is a supplied visual glTF asset, not a claim that this site authored its DCC source. Source geometry and textures are retained. The viewer uses its own procedural room lighting. Display-only centering/scaling is outside the asset. Reported dimensions come from file coordinates (metres converted to millimetres for display), not a measurement of a real radio.

## Rounded cube STEP

- Source author/contributor: Viktor Kovacs (kovacsv), occt-import-js repository.
- File-specific introduction commit: c58b043749b0a09a0dfc4451f40c4d900eda68ef, 2022-10-27, “Add parameter to define mesh triangulation quality #5”.
- Original STEP: https://raw.githubusercontent.com/kovacsv/occt-import-js/c58b043749b0a09a0dfc4451f40c4d900eda68ef/test/testfiles/rounded-cube/rounded-cube.step
- Commit: https://github.com/kovacsv/occt-import-js/commit/c58b043749b0a09a0dfc4451f40c4d900eda68ef
- Repository license: LGPL-2.1, preserved as LICENSE-LGPL-2.1.txt. This is the project's own rounded-cube test asset (introduced by the repository author), not a third-party CAx-IF fixture. No separate per-file license notice is present. Repository source: https://github.com/kovacsv/occt-import-js
- Local: rounded-cube.step, 20,532 bytes, unchanged.
- SHA256: 370c5474e50dc94923f0dacb5113f7258233601620ab530d937c18571869d49e.
- Header identifies FreeCAD and Open CASCADE STEP processor 7.6, AP214 AUTOMOTIVE_DESIGN. It contains an ADVANCED_BREP_SHAPE_REPRESENTATION and seven ADVANCED_FACE entities.

A small rounded test solid is deliberately used to isolate tessellation behavior. It is not presented as an authored industrial product or a complex assembly benchmark. The original STEP is provided as the modifiable source for its derived surface meshes; derived preview/mesh representations of this test asset retain its source and LGPL-2.1 notice.

## Runtime and transformations

- Three.js 0.185.1, MIT: https://github.com/mrdoob/three.js/tree/r185
- occt-import-js 0.0.23, LGPL-2.1. Installed unmodified JS/WASM and both upstream license notices are copied by scripts/prepare-model-runtime.mjs into public/vendor/occt at development/build time. Runtime files remain separately replaceable. Source and build instructions: https://github.com/kovacsv/occt-import-js/tree/c2148e54b456b571238d35cac037d304053d64b2 (gitHead recorded by npm for package 0.0.23).
- Worker code: public/workers/model-step.js. Original STEP bytes are read by ReadStepFile for every run. Output unit millimeter; absolute linear deflection choices 1, 0.1, 0.01, 0.001 mm; angular deflection fixed at 0.5 radians.
- The worker transfers typed position, normal and index buffers. Kernel output coordinates are multiplied by 0.001 before construction of the Three.js source group, so exported GLB uses metres. The source test part is one body, with placement represented in the imported mesh coordinates.
- Screen-only normalization is stored on a separate parent. Export clones the source group, restores its original materials, and omits that display parent. GLB is then actually reparsed; triangle counts and bounds are checked (bounds tolerance 0.00001 metres). This does not validate analytic CAD precision.
- Parse/tessellation timing measures the ReadStepFile call only. It excludes network, kernel initialization, worker transfer and rendering. Warm-up effects make single-run timing non-monotonic.
- The viewer only renders on changes and pauses offscreen. Starting one experiment releases the other experiment's WebGL scene and worker.

## Technical references

- https://threejs.org/docs/#GLTFLoader — scene loading.
- https://github.com/kovacsv/occt-import-js — importer parameters, mesh structure, units.
- https://occt3d.com/dev/doc/refman/html/class_r_w_gltf___caf_writer.html — triangulation must precede glTF writing.
- https://dev.opencascade.org/sites/default/files/pdf/release_notes_7.7.0.pdf — STEP tessellated representations are supported; STEP is not universally triangle-free.
- https://vtk.org/doc/nightly/html/classvtkGLTFExporter.html — limited export scope; rendered data is not the full scientific dataset.
