Repository Layout

Path Crate / Artifact Responsibility
core/backbone orbitron-backbone Immutable scene graph (SceneGraph), editable molecular charge/multiplicity, periodic table, property registry, trajectories, and frequency data. crystal also holds the lattice geometry shared by selection queries and the force field: MinImageCtx (minimum-image displacement) and PeriodicAnchorGrid (periodic neighbour binning).
core/query orbitron-query Selection expression AST (SelectionExpr), parser (parse_expression), evaluator (evaluate_selection).
core/selection-engine orbitron-selection-engine Cached selection programs, scoring heuristics, bounding utilities for UI highlights.
core/render orbitron-render WGPU renderer, render data extraction (RenderSceneData), lighting presets, headless pipeline.
core/appearance orbitron-appearance Scene-bound themes, lighting, render flags, presentation bundles, and style application shared by desktop, CLI, and WASM.
core/edit orbitron-edit Editing command DSL, mutable scene wrappers, SMILES import, amino-acid mutation templates, Top8000-derived backbone-dependent rotamer previews, and the geometry/ builder engine: build templates, generated rings, Clean, coordination-sphere assessment, 3D embedding, and bounded UFF conformer search.
core/forcefield orbitron-forcefield UFF: parameter table, atom typing, all five energy terms, explicit-image fixed-cell periodic topology, and the minimiser behind Relax Geometry.
core/ribbon orbitron-ribbon Cartoon/ribbon mesh construction. Split out of viewer/core so the WASM viewer can build them too — it needs only backbone/render/math, none of egui or the parsing stack. viewer-core re-exports it as ribbon.
core/surface orbitron-surface Molecular surfaces: solvent-excluded, solvent-accessible, and van der Waals. Owns the nearest-atom field, the marching-cubes extraction, per-atom SASA, and the topology and cost budgets. Behind the Surfaces tab, orbitron sasa, and the Python surface calls — ui/shell, viewer/core, automation/cli and extensions/python-bridge all depend on it.
core/export-vector orbitron-export-vector Vector export (SVG/PDF/EPS) as real geometry with real text, rather than an embedded raster.
core/services orbitron-services Facade providing loader/analyzer/exporter/renderer/data source abstractions.
core/symmetry orbitron-symmetry Niggli reduction, 14 Bravais lattice identification, molecular point group detection.
core/inchi orbitron-inchi Safe wrapper around the vendored IUPAC reference implementation: converts a SceneGraph and returns InChI / InChIKey strings.
core/inchi-sys orbitron-inchi-sys Raw bindings to the vendored IUPAC InChI reference C sources (v1.07.5), built by cc at compile time.
core/math orbitron-math Pure-Rust math: Jacobi eigensolver, marching cubes/squares, and the 2D slice primitives (SlicePlane, ScalarField2D, sample_grid_slice, color_scale/diverging_color) that core/services re-exports, so the web viewer can build a slice without the parsing stack.
core/diagram orbitron-diagram 2D diagram generation.
core/diagram-render orbitron-diagram-render Shared diagram rendering utilities.
core/delta-types orbitron-delta-types Shared delta-protocol types for viewer synchronisation.
core/orbpack orbitron-orbpack The .orbpack bundle format: canonical document types, container, and scene conversion. Deliberately free of platform dependencies so it builds for wasm32 — the web viewer reads bundles with it.
core/periodic orbitron-periodic Program-neutral reciprocal-space scene construction: folds canonical band samples into the first Brillouin zone, splits paths at zone boundaries, and projects the same geometry for GUI, TUI, Python, and vector export.
core/plots orbitron-plots Headless data figures for orbitron plot and the desktop’s figure export: one SVG drawing, PNG rasterised from it by resvg with only the embedded Inter. Knows no chemistry; core/services/src/plot decides what is drawn.
io/pipelines orbitron-io-pipelines File format registry and loaders (XYZ, PDB/mmCIF/CIF, SDF/MOL, GROMACS GRO, Gaussian, ORCA, NWChem, VASP, CUBE/XSF, MRC2014/CCP4, NBO, MOLDEN, TREXIO, Molcas, Molpro, DIRAC, CP2K, QMCPACK, and Quantum ESPRESSO). XTC random access lives at the services boundary because it requires a topology-bearing companion.
automation/cli orbitron-cli Command-line interface for automation, viewer launching, batch jobs.
automation/tui orbitron-tui Terminal UI built on shared services for headless viewing and inspection.
ui/shell orbitron-ui-shell Desktop viewer (egui + winit + WGPU), panels, event loop, edit mode.
viewer/core orbitron-viewer-core Platform-neutral viewer core (UI state, camera, render styles) used by ui/shell (the only crate that depends on it; the CLI builds on orbitron-appearance, orbitron-ribbon and orbitron-surface instead). viewer/wasm does not depend on it — it builds on orbitron-render/backbone directly.
viewer/wasm orbitron-viewer-wasm Web/WebGPU viewer.
viewer/web-page orbitron-web-page The self-contained Web View page (template, embedded WASM viewer, writer) shared by File > Export > Web View, orbitron web and Python’s export_html, which passes in its own copy of the viewer. Its build script copies the staged viewer assets into OUT_DIR, with empty placeholders when they are missing.
extensions/python-bridge orbitron-python-bridge PyO3 bindings exposing loader/analyzer/render hooks to Python.
extensions (root) — Houses the Python bridge (currently its only crate).
tests/render-parity orbitron-render-parity Headless golden-image render-regression harness (perceptual diff; baselines committed, regen via ORBITRON_REGEN_BASELINES=1).
fixtures/ — Molecular datasets used by tests and demos.