Repository navigation
What's Changed
- Add geometry viewer by @paulgessinger in #1
- Implement PNG-export readback for GLCORE and D3D11 (fix CI build) by @paulgessinger in #5
- Add README by @paulgessinger in #4
- docs: add event-display design & integration strategy by @paulgessinger in #2
- refactor: Improve overall maintainability by @paulgessinger in #6
- Add local Conan recipes for viewer deps by @paulgessinger in #7
- ir: split Render JSON codec into render_json.{hpp,cpp} by @paulgessinger in #8
- build: validate cross-compiled shaders by @paulgessinger in #9
- ci: Cache Emscripten artifacts in CI by @paulgessinger in #10
- ci: Various updates by @paulgessinger in #11
- chore: Group deps updates by @paulgessinger in #17
- Bump the github-actions group with 11 updates by @dependabot[bot] in #18
- perf: Performance diagnostics and improvements by @paulgessinger in #19
- deps: bump pinned third-party versions to latest available by @paulgessinger in #21
- test(config): guard fixture TOML configs against silent rot by @paulgessinger in #22
- feat: scripted (Lua) configuration front-end by @paulgessinger in #20
- chore: VSCode integration improvement + build improvements by @paulgessinger in #23
- fix(viewer): stop D3D11 pause-when-static presenting stale frames by @paulgessinger in #24
- feat: Update viewer project strategy document and enhance ProjectFs by @paulgessinger in #25
- feat: improved rendering of calorimeter style stacks by @paulgessinger in #26
- Persist render-quality settings and add reset-to-defaults action by @paulgessinger in #27
- fix(ao): Improved live AO by @paulgessinger in #28
- fix(ao): retune default AO intensity/radius/quality by @paulgessinger in #29
- tessellation diagnostics debug severity + material-prefilter band-width dial by @paulgessinger in #30
- Archive + live-FS project core (stack 1/3) by @paulgessinger in #32
- build(deps): bump the github-actions group across 1 directory with 7 updates by @dependabot[bot] in #36
- Web application model: archive-as-project R1–R5 (stack 2/3) by @paulgessinger in #33
- Viewer file-tree UX: persist, remove, drag-move (stack 3/3) by @paulgessinger in #31
- docs: sketch the public API surface by @paulgessinger in #37
- ci(pages): publish the wasm viewer to GitHub Pages in both postures by @paulgessinger in #38
- ci(windows): replace msvc-dev-cmd with setup-msvc-dev (Node 24) by @paulgessinger in #39
- Salvage: visitBFS traversal guards, dead diagnostics JSON, const built scene by @paulgessinger in #42
- Build position-independent, and prove it with a link probe by @paulgessinger in #44
- Resolve export config in one place by @paulgessinger in #45
- Export config: glTF/GLB-only bake, one key schema, diamond includes by @paulgessinger in #46
- Move internal headers next to their sources, and internals into nested namespaces by @paulgessinger in #47
- Move diagnostics out of ir: it is cross-cutting, not IR-owned by @paulgessinger in #48
- Packaging: install the shared library, and prove nothing internal escapes (step 5) by @paulgessinger in #50
- ci: only save conan/emsdk/naga caches on main by @paulgessinger in #51
- Config: one include-resolution engine, not two (step 5b) by @paulgessinger in #52
- Fix web file open: quote Module properties Closure was renaming by @paulgessinger in #62
- API: the public surface (step 6) by @paulgessinger in #53
- Error model: fatal is what the call cannot deliver by @paulgessinger in #55
- Diagnostics: one list type, a value, with no wrapper to maintain by @paulgessinger in #57
- test(api): a unit suite that links against the shared library by @paulgessinger in #58
- feat(config): Lua configs everywhere — wasm, and inside a project by @paulgessinger in #59
- feat(wasm): serve a prebuilt .nhproj, not just a fixture slug by @paulgessinger in #63
- refactor(viewer): one pass over the project, not a resumable walk by @paulgessinger in #60
- fix(viewer): stamp the roots into an archive it creates by @paulgessinger in #64
- feat: Python bindings by @paulgessinger in #67
- build(python): a wheel that carries the library it binds by @paulgessinger in #68
- ci(python): wheels on three platforms, published to TestPyPI by @paulgessinger in #69
- build(deps): bump the github-actions group across 1 directory with 5 updates by @dependabot[bot] in #61
- ci(python): publish to PyPI on tags, and build an sdist by @paulgessinger in #71
- ci(python): route the wheel build's compile through ccache by @paulgessinger in #75
- feat(cli): the CLI moves into the library as cli::run by @paulgessinger in #72
- feat(python): uvx nodehammer gives you the CLI by @paulgessinger in #73
- fix(deps): CLI11 2.7.2, so the CLI can be linked into a wasm module by @paulgessinger in #77
- build(wasm): the install tree carries a servable web runtime by @paulgessinger in #79
- feat(web): the runtime is located by a ladder, and checked before use by @paulgessinger in #80
- feat(web): viewer --web — a staged root, served, in a browser by @paulgessinger in #81
- feat(python): the nodehammer-web wheel, and the rung that finds it by @paulgessinger in #82
- feat(python): nodehammer depends on nodehammer-web, with a generated pin by @paulgessinger in #83
- docs(cli): a design of record for the command line surface by @paulgessinger in #85
- feat(cli): inspect answers in JSON by @paulgessinger in #88
- feat(ir): nhr is an exporter, and nhb has one name by @paulgessinger in #87
- feat(project): pack, publish and info — a .nhproj without the viewer by @paulgessinger in #86
- refactor(cli): Restructure CLI by @paulgessinger in #89
- fix(ci): the web-serve check looks for the URL where it is now printed by @paulgessinger in #90
- feat(cli): agent skills ship inside the binary by @paulgessinger in #93
- refactor(ir): extras carry their own value type, not nlohmann by @paulgessinger in #91
- fix(ir): exporters emit in ID order, not in map order by @paulgessinger in #95
- build(deps): bump the github-actions group across 1 directory with 7 updates by @dependabot[bot] in #99
- feat(api): separate file IO from in-memory conversion by @paulgessinger in #102
- fix(cli): load Lua configs during conversion by @paulgessinger in #104
- feat(ingest): package a minimal shared geometry SDK by @paulgessinger in #101
- build(deps): bump the github-actions group across 1 directory with 2 updates by @dependabot[bot] in #100
- docs(skills): teach shipped skill detector config authoring by @paulgessinger in #105
- Support DD4hep global loading through validated importer options by @paulgessinger in #106
- Fix ROOT tessellated solids with quadrilateral facets by @paulgessinger in #108
- Add a single required CI gate by @paulgessinger in #118
- refactor(ir): separate expanded nodes from common geometry catalogs by @paulgessinger in #109
- feat(ir): use canonical shared scenes for import and selection by @paulgessinger in #110
- feat(format): add NHS9 FlatBuffers and integrated upgrade command by @paulgessinger in #107
- feat: Preserve shared geometry and sparse metadata in selection exports by @paulgessinger in #111
- Reuse shared geometry during selection evaluation by @paulgessinger in #113
- Tessellate canonical geometry without expanding the semantic scene by @paulgessinger in #115
- Exercise FCC-ee conversion and tessellation in backend CI by @paulgessinger in #116
- Apply viewer wedge cuts without expanding canonical geometry by @paulgessinger in #117
New Contributors
- @paulgessinger made their first contribution in #1
- @dependabot[bot] made their first contribution in #18
Full Changelog: v0.1.3...v0.3.0