Runtime Support
RAMAL-EBX has a small SDL/GPU/ImGui runtime for an industrial EB/X-ray workbench built around PHITS. Runtime code supports authoring, simulation control, Result inspection, and Project data workflows.
Application runtime
main.odinowns normal SDL/GPU startup and the editor frame loop.app_state.odinowns application state shape and lifecycle only.app_runtime.odinowns frame polling, task polling, UI dispatch, and frame rendering.app_project.odinowns staged Project open/close and Project-state swapping.input_state.odinandcamera.odinown fixed editor input and camera state.editor_viewport_overlays.odinprojects scientific labels into ImGui draw lists; the scene renderer does not maintain a second text pipeline.shader_dev.odinchecks development shader freshness; compiled shaders remain the renderer inputs.imgui_layer.odinowns ImGui integration.
Scientific rendering
renderer.odinowns the GPU scene renderer and render passes.renderer_cells.odinowns cell-model assembly.renderer_preview.odinowns generated preview mesh preparation and upload data.csg_mesh.odingenerates inspection meshes from PHITS cell expressions.gpu_resources.odinowns GPU resources;render_math.odinowns render math;debug_draw.odinowns debug lines and drawing helpers.editor_viewport_interaction.odinandeditor_viewport_overlays.odinown editor interaction and scientific overlays.editor_geometry.odinowns the shared cached cell queries used by viewport, validation, and rendering flows.dose_field.odinowns loaded Result dose/uncertainty fields.
The renderer visualizes Scene_State and Result fields. It does not own PHITS
meaning, Case identity, or scientific verification. ImGui is composed as the
final UI pass with the current integration rule documented in
IMGUI_SDLGPU3_INTEGRATION.md.
Process boundary
Simulation is a transient Odin state service. process.odin owns process-group
control; simulation.odin starts and polls the strict Case runner; and
study_run.odin sequences ordinary Jobs. ml_task.odin starts and polls one
Python ML command. These are services/state, not persistent Simulation, Study
Run, or ML records.
Deliberate scope
The active runtime has no app-level asset registry, imported model conversion workflow, audio subsystem, or generic game scene model. Text is a small renderer/editor service for labels and overlays. New runtime code belongs only when it supports PHITS authoring, execution, completed Result inspection, or the Project/Research records.