# dipeshbabu/elodin, Release Stories All notable changes to this project. ## V0.16.1 _v0.16.1 · 2026-02-17_ Export telemetry data from the database with flexible time-alignment in milliseconds and replay capabilities for post-flight analysis. ### What changed Export telemetry data from the database with flexible time-alignment in milliseconds and replay capabilities for post-flight analysis. Merge multiple database exports with time-alignment and replay recorded flight data with adjustable playback speed. Stream live telemetry data from the database as it arrives, enabling real-time monitoring of flight operations. New example demonstrating video streaming capabilities with improved latency handling and OBS compatibility. Add configurable 3D orientation cube to the editor viewport for intuitive camera navigation, with optional KDL configuration support. Launch editor with `elodin editor --kdl my-kdl.kdl` to open simulation configurations directly from the command line. Improve editor simulation playback with better performance and real-time synchronization of visual elements. Add float rounding support in KDL configuration files for cleaner, more readable numeric values. Enable joint animation in 3D models loaded from GLB files using Entity Query Language expressions. Show current playback speed indicator when replaying simulations in the editor. New C++ helper function for working with nanosecond-precision timestamps in the telemetry database. Correct the timeline component to properly pass simulation handles for accurate timeline state management. Enhanced state management in the command palette for more reliable keyboard navigation and command execution. Properly handle interrupt signals in Python-based simulations for clean shutdown. Prevent mouse interactions from passing through UI popups to underlying scene elements. Correct margin calculation in the color picker widget to prevent unintended layout shifts. Re-enable flexible XY plotting functionality in telemetry visualization. Correct camera label orientation to properly align with viewport changes. Eliminate visual flicker in the RC Jet example during playback. Address regression in plot rendering and data visualization. Correct missing message configuration in the drone example KDL file. Ensure all coordinate systems maintain consistent right-handed orientation conventions. Add explicit HTTP header configuration to resolve connectivity issues in the cube-sat example. Point flash-uefi to the correct legacy flash script for proper bootloader updates. Resolve compilation warnings when building for Windows platforms. Repair broken… ### Why it matters Export telemetry data from the database with flexible time-alignment in milliseconds and replay capabilities for post-flight analysis. ### New Features - Add elodin-db export CLI command (#454), Export telemetry data from the database with flexible time-alignment in milliseconds and replay capabilities for post-flight analysis. - Add elodin-db merge and replay commands (#471), Merge multiple database exports with time-alignment and replay recorded flight data with adjustable playback speed. - Add elodin-db --follow flag (#489), Stream live telemetry data from the database as it arrives, enabling real-time monitoring of flight operations. - Add video stream example with OBS integration (#467), New example demonstrating video streaming capabilities with improved latency handling and OBS compatibility. - Implement viewport view cube widget (#474), Add configurable 3D orientation cube to the editor viewport for intuitive camera navigation, with optional KDL configuration support. - Add CLI option to load KDL files directly (#478), Launch editor with `elodin editor --kdl my-kdl.kdl` to open simulation configurations directly from the command line. - Add real-time and performant editor playback (#480), Improve editor simulation playback with better performance and real-time synchronization of visual elements. - Implement KDL float rounding (#479), Add float rounding support in KDL configuration files for cleaner, more readable numeric values. - Animate joints on GLB files via EQL (#461), Enable joint animation in 3D models loaded from GLB files using Entity Query Language expressions. - Display replay speed in editor, Show current playback speed indicator when replaying simulations in the editor. - Add Timestamp_NS database utility function (#494), New C++ helper function for working with nanosecond-precision timestamps in the telemetry database. ### Bug Fixes - Fix UI timeline simulation handle passing (#448), Correct the timeline component to properly pass simulation handles for accurate timeline state management. - Improve command palette state handling (#453), Enhanced state management in the command palette for more reliable keyboard navigation and command execution. - Fix Python simulation CTRL-C handling (#460), Properly handle interrupt signals in Python-based simulations for clean shutdown. - Fix pointer events passing through popups (#463), Prevent mouse interactions from passing through UI popups to underlying scene elements. - Fix color picker margin layout (#465), Correct margin calculation in the color picker widget to prevent unintended layout shifts. - Restore arbitrary XY plotting (#462), Re-enable flexible XY plotting functionality in telemetry visualization. - Fix camera label rotation (#476), Correct camera label orientation to properly align with viewport changes. - Fix RC Jet flicker (#487), Eliminate visual flicker in the RC Jet example during playback. - Fix plot regression (#496), Address regression in plot rendering and data visualization. - Fix drone.kdl messaging configuration, Correct missing message configuration in the drone example KDL file. - Fix ENU, XYZ, RGB coordinate consistency, Ensure all coordinate systems maintain consistent right-handed orientation conventions. - Fix cube-sat example HTTP headers, Add explicit HTTP header configuration to resolve connectivity issues in the cube-sat example. - Fix Aleph flash-uefi configuration (#458), Point flash-uefi to the correct legacy flash script for proper bootloader updates. - Fix warnings for Windows targets (#466), Resolve compilation warnings when building for Windows platforms. ### Maintenance - Fix documentation links (#451), Repair broken hyperlinks in public documentation. - Bump Jetpack NixOS dependency (#455), Update Jetpack NixOS version for improved Orin hardware support. - Embed axes-cube.glb asset, Embed the orientation cube 3D model directly in the binary for simplified asset management. - Remove unused EntityConfigured type, Clean up unused type definition from the codebase. - Make editor default to 1x speed, Set editor playback speed to normal (1x) by default for intuitive simulation control. ### Other - Reveal zoom button with Alt/Option key, Hide zoom controls by default, accessible by holding Alt/Option for a cleaner UI. ## V0.16.0 _v0.16.0 · 2026-01-28_ Updated the engine from Bevy 0.18.1 to 0.17, ensuring compatibility with the latest graphics and simulation framework. ### What changed Updated the engine from Bevy 0.18.1 to 0.17, ensuring compatibility with the latest graphics and simulation framework. Right-clicking on a tab title now shows a context menu to open the inspector or rename the tab. Introduces a new decorator to preserve cond() behavior in Python simulation code. New subcommands (merge, prune, time-align, truncate, drop) for managing time-series database recordings. The 'elodin-db info' subcommand now prints detailed information (recording metadata, time step, schematic) without requiring a running database. Resolves crashes when running with fewer displays, adds ELODIN_KDL_DIR support for secondary windows, and fixes tab persistence issues. Corrected UI logic for properly closing panes in the editor. Ensures tab state is correctly saved and restored across editor sessions. Properly cleans up resources when secondary windows are closed. Resolves spurious tab creation on Linux systems. Corrects the device tree configuration in aleph NixOS modules to properly support peripherals. Resolves a memory corruption issue in linked list handling. Enables killing simulation recipes through the step execution context. Removed obsolete Command Palette commands to streamline the interface. Improved sidebar organization and implementation in the editor UI. Enhanced visual design with low-contrast tab titles and other interface refinements. New example simulation demonstrating Bitcraze Crazyflie quadrotor dynamics and control. Embedded font and shader assets directly in the repository instead of relying on external sources. Bumped the GCC version used in the aleph development environment. Updated documentation to provide clearer guidance on launching the Elodin editor. ### Why it matters Updated the engine from Bevy 0.18.1 to 0.17, ensuring compatibility with the latest graphics and simulation framework. ### New Features - Add right-click context menu to tab titles (#440), Right-clicking on a tab title now shows a context menu to open the inspector or rename the tab. - Add @elodin.map_seq decorator (#444), Introduces a new decorator to preserve cond() behavior in Python simulation code. - Add elodin-db subcommands for database operations (#437), New subcommands (merge, prune, time-align, truncate, drop) for managing time-series database recordings. - Enhance elodin-db info command (#410), The 'elodin-db info' subcommand now prints detailed information (recording metadata, time step, schematic) without requiring a running database. - Kill recipes via StepContext (#413), Enables killing simulation recipes through the step execution context. - Add Bitcraze Crazyflie example (#388), New example simulation demonstrating Bitcraze Crazyflie quadrotor dynamics and control. ### Bug Fixes - Fix panic on fewer screens and sticky tabs (#436), Resolves crashes when running with fewer displays, adds ELODIN_KDL_DIR support for secondary windows, and fixes tab persistence issues. - Fix pane closing behavior (#415), Corrected UI logic for properly closing panes in the editor. - Fix tabs persistence (#422), Ensures tab state is correctly saved and restored across editor sessions. - Fix editor resource cleanup on secondary window close (#429), Properly cleans up resources when secondary windows are closed. - Fix extra tab on Linux (#434), Resolves spurious tab creation on Linux systems. - Fix aleph b2b device tree for peripheral support, Corrects the device tree configuration in aleph NixOS modules to properly support peripherals. - Fix linked list corruption bug (#421), Resolves a memory corruption issue in linked list handling. ### Maintenance - Upgrade to Bevy 0.17 (#399), Updated the engine from Bevy 0.18.1 to 0.17, ensuring compatibility with the latest graphics and simulation framework. - Decommission Command Palette commands (#418), Removed obsolete Command Palette commands to streamline the interface. - Refactor sidebars (#443), Improved sidebar organization and implementation in the editor UI. - Make tab titles low contrast and other UI improvements (#442), Enhanced visual design with low-contrast tab titles and other interface refinements. - Add fonts and shaders to git tree (#426), Embedded font and shader assets directly in the repository instead of relying on external sources. - Update aleph-dev gcc version (#430), Bumped the GCC version used in the aleph development environment. - Clarify editor startup instructions in readme (#431), Updated documentation to provide clearer guidance on launching the Elodin editor. ## V0.16.0-alpha.5 _v0.16.0-alpha.5 · 2026-01-14_ Improved management of time.start_timestamps to ensure accurate timestamp tracking across simulation and flight data collection scenarios. ### What changed Improved management of time.start_timestamps to ensure accurate timestamp tracking across simulation and flight data collection scenarios. Enhanced timestamp precision and reliability in telemetry and data logging systems. ### Why it matters Improved management of time.start_timestamps to ensure accurate timestamp tracking across simulation and flight data collection scenarios. ### Bug Fixes - Fix timestamp handling in time management (#412), Improved management of time.start_timestamps to ensure accurate timestamp tracking across simulation and flight data collection scenarios. - Improve fix timestamps (#411), Enhanced timestamp precision and reliability in telemetry and data logging systems. ## V0.16.0-alpha.4 _v0.16.0-alpha.4 · 2026-01-12_ StepContext now supports writing components with custom timestamps, enabling more flexible telemetry capture and message bus operations. Includes updated documentation. ### What changed StepContext now supports writing components with custom timestamps, enabling more flexible telemetry capture and message bus operations. Includes updated documentation. ### Why it matters StepContext now supports writing components with custom timestamps, enabling more flexible telemetry capture and message bus operations. Includes updated documentation. ### New Features - Allow custom timestamps in StepContext write_component (#407), StepContext now supports writing components with custom timestamps, enabling more flexible telemetry capture and message bus operations. Includes updated documentation. ## V0.16.0-alpha.3 _v0.16.0-alpha.3 · 2026-01-12_ Time travel warnings in the debugger now include the component name for better debugging context when temporal inconsistencies are detected. ### What changed Time travel warnings in the debugger now include the component name for better debugging context when temporal inconsistencies are detected. Update lock file ### Why it matters Time travel warnings in the debugger now include the component name for better debugging context when temporal inconsistencies are detected. ### Bug Fixes - Add component name to time travel warning (#404), Time travel warnings in the debugger now include the component name for better debugging context when temporal inconsistencies are detected. ### Maintenance - Update lock file (#405) ## V0.16.0-alpha.2 _v0.16.0-alpha.2 · 2026-01-11_ Corrected an issue where timestep values were being incorrectly truncated, which could affect simulation timing accuracy. ### What changed Corrected an issue where timestep values were being incorrectly truncated, which could affect simulation timing accuracy. ### Why it matters Corrected an issue where timestep values were being incorrectly truncated, which could affect simulation timing accuracy. ### Bug Fixes - Fix timestep truncation (#402), Corrected an issue where timestep values were being incorrectly truncated, which could affect simulation timing accuracy. ## V0.16.0-alpha.1 _v0.16.0-alpha.1 · 2026-01-11_ Refined sidebar UI with better visual organization and fixed background color contrast for the dark/light mode toggle button. ### What changed Refined sidebar UI with better visual organization and fixed background color contrast for the dark/light mode toggle button. Corrected the default display behavior of the data overview panel when working without an active schematic. Introduced pre_step callback and ctx.truncate method to the Elodin simulation API for better control over simulation execution and memory management. Upgraded to Bevy egui 0.36.0 to align with the latest UI framework improvements and compatibility. Fix Deepstream configuration Release v0.16.0-alpha.1 ### Why it matters Refined sidebar UI with better visual organization and fixed background color contrast for the dark/light mode toggle button. ### New Features - Improve sidebar layout and styling (#391), Refined sidebar UI with better visual organization and fixed background color contrast for the dark/light mode toggle button. - Add pre_step hook and context truncate to simulation (#400), Introduced pre_step callback and ctx.truncate method to the Elodin simulation API for better control over simulation execution and memory management. ### Bug Fixes - Fix data overview display when no schematic is loaded (#395), Corrected the default display behavior of the data overview panel when working without an active schematic. ### Maintenance - Update Bevy and egui dependencies (#398), Upgraded to Bevy egui 0.36.0 to align with the latest UI framework improvements and compatibility. - Fix Deepstream configuration (#394) - Release v0.16.0-alpha.1 (#393) ## V0.16.0-alpha.0 _v0.16.0-alpha.0 · 2026-01-05_ Updates aleph NixOS modules to use latest jetpack-nixos, with breaking changes to the template configuration. ### What changed Updates aleph NixOS modules to use latest jetpack-nixos, with breaking changes to the template configuration. Introduces a new example for synchronous-in-the-loop simulation with Betaflight flight controller, supporting native 4kHz operation. New example simulation demonstrating Barrowman method for rocket aerodynamics calculations. Introduces a default data overview panel in the visualization tool for quick telemetry inspection. Refactors UI window management to use consistent theming across all windows and adds theme/scheme management capabilities. Resolves reconnection handling for UDP telemetry streams. Corrects schematic tab hierarchy nesting and ignores invalid empty viewport position values. Bumps deepstreamer dependency for improved streaming capabilities. Removes obsolete configuration and improves boot setup in aleph NixOS modules. Applies necessary kernel configuration updates for aleph platform. Switches storage backend back to Elastic Block Store from alternative configuration. Improves multi-window support for command palette with proper palette targeting and pane render routing. Ensures Inspector and Hierarchy sidebars operate independently per window without cross-window interference. Simplifies command palette implementation and adds documentation for command palette functionality. ### Why it matters Updates aleph NixOS modules to use latest jetpack-nixos, with breaking changes to the template configuration. ### Breaking Changes - Bump jetpack-nixos dependency in aleph, Updates aleph NixOS modules to use latest jetpack-nixos, with breaking changes to the template configuration. ### New Features - Add Betaflight lockstep SITL example (#375), Introduces a new example for synchronous-in-the-loop simulation with Betaflight flight controller, supporting native 4kHz operation. - Add Rocket Barrowman aerodynamics example (#274), New example simulation demonstrating Barrowman method for rocket aerodynamics calculations. - Add default Data Overview panel (#373), Introduces a default data overview panel in the visualization tool for quick telemetry inspection. - Implement unified window theme system (#372), Refactors UI window management to use consistent theming across all windows and adds theme/scheme management capabilities. ### Bug Fixes - Fix UDP receive reconnection logic (#355), Resolves reconnection handling for UDP telemetry streams. - Fix schematic load tab nesting and viewport positioning (#387), Corrects schematic tab hierarchy nesting and ignores invalid empty viewport position values. - Update deepstreamer to version 7.1 (#389), Bumps deepstreamer dependency for improved streaming capabilities. - Clean up aleph ethernet and systemd-boot configuration, Removes obsolete configuration and improves boot setup in aleph NixOS modules. - Update aleph kernel configuration, Applies necessary kernel configuration updates for aleph platform. - Revert to EBS storage (#390), Switches storage backend back to Elastic Block Store from alternative configuration. ### Maintenance - Refactor command palette targeting and pane rendering (#379), Improves multi-window support for command palette with proper palette targeting and pane render routing. - Enhance Inspector and Hierarchy sidebar window isolation (#385), Ensures Inspector and Hierarchy sidebars operate independently per window without cross-window interference. - Clean up and document command palette (#380), Simplifies command palette implementation and adds documentation for command palette functionality. ## V0.15.5 _v0.15.5 · 2025-12-18_ Enhanced camera control with reset functionality and introduced new emissivity and lock fields in KDL graph definitions for better simulation control. ### What changed Enhanced camera control with reset functionality and introduced new emissivity and lock fields in KDL graph definitions for better simulation control. Prevented unintended dragging behavior when clicking on UI panels. Added support for absolute arrow positioning in the visualization editor. Enabled holding buttons to step through multiple increments in the UI. Bumped bevy_egui dependency to the latest compatible version. Updated release.md with guidance on pre-release procedures. Added note about disk space considerations when building Qt on OrbStack. ### Why it matters Enhanced camera control with reset functionality and introduced new emissivity and lock fields in KDL graph definitions for better simulation control. ### New Features - Reset cameras and add new KDL fields for emissivity and lock graph state (#349), Enhanced camera control with reset functionality and introduced new emissivity and lock fields in KDL graph definitions for better simulation control. - Allow absolute positioning of arrows (#362), Added support for absolute arrow positioning in the visualization editor. - Add hold button multi-step functionality (#361), Enabled holding buttons to step through multiple increments in the UI. ### Bug Fixes - Fix unexpected drag on panel clicks (#349), Prevented unintended dragging behavior when clicking on UI panels. ### Maintenance - Update bevy_egui to 0.35.1 (#360), Bumped bevy_egui dependency to the latest compatible version. - Add pre-release section to release documentation (#359), Updated release.md with guidance on pre-release procedures. - Document OrbStack Qt build disk requirements (#356), Added note about disk space considerations when building Qt on OrbStack. ## V0.15.5-alpha.0 _v0.15.5-alpha.0 · 2025-12-14_ Resolves rendering order issues in the 3D editor and updates arrow label rendering to use Bevy's UI system for improved compatibility and maintainability. ### What changed Resolves rendering order issues in the 3D editor and updates arrow label rendering to use Bevy's UI system for improved compatibility and maintainability. Improves arrow visualization in the editor with dynamic thickness scaling based on viewport camera parameters for better visual clarity at different zoom levels. Enhances the rc-jet example with on-screen display target tracking capabilities and simulation improvements. Provides a new example demonstrating how to broadcast ECS components over UDP using the time-series database. Fixes an issue where log subscribers were being registered multiple times, reducing redundant log output. Adds new schematic reference documentation to help users understand system architecture and design patterns. Improves CI infrastructure by increasing the temporary filesystem size for the build runner. Bump to v0.15.5-alpha.0 ### Why it matters Resolves rendering order issues in the 3D editor and updates arrow label rendering to use Bevy's UI system for improved compatibility and maintainability. ### New Features - Add numeric world-space arrow thickness with per-viewport camera sizing (#341), Improves arrow visualization in the editor with dynamic thickness scaling based on viewport camera parameters for better visual clarity at different zoom levels. - Add OSD target tracking and improve rc-jet simulation (#344), Enhances the rc-jet example with on-screen display target tracking capabilities and simulation improvements. - Add UDP component broadcast example for Elodin-DB (#351), Provides a new example demonstrating how to broadcast ECS components over UDP using the time-series database. ### Bug Fixes - Fix camera order collisions and migrate arrow labels to Bevy UI (#343), Resolves rendering order issues in the 3D editor and updates arrow label rendering to use Bevy's UI system for improved compatibility and maintainability. - Avoid double logging subscriber (#339), Fixes an issue where log subscribers were being registered multiple times, reducing redundant log output. ### Maintenance - Increase Buildkite CI Runner RamFS disk size (#342), Improves CI infrastructure by increasing the temporary filesystem size for the build runner. - Bump to v0.15.5-alpha.0 (#337) ### Other - Create reference/schematic documentation (#338), Adds new schematic reference documentation to help users understand system architecture and design patterns. ## V0.15.4 _v0.15.4 · 2025-12-04_ Support visualization of vector fields in the editor with arrow rendering for enhanced simulation analysis. ### What changed Support visualization of vector fields in the editor with arrow rendering for enhanced simulation analysis. Introduces MSP Displayport OSD service for telemetry display and adds a new RC jet simulation example with schematic 3D transform support. Enable software-in-the-loop (SITL) Python module integration for improved testing and simulation workflows. Add configuration option in aleph NixOS modules to specify custom database save locations. Support alternative kernel configuration options in aleph for flexible NixOS builds. Unify axis-x locking behavior in multi-window mode for consistent interaction across viewports. Resolve issue where the axes widget would continue rotating without user input. Ensure proper signal handling for Ctrl-C on Unix-like systems to gracefully interrupt simulations. Restore Python test functionality in the nox-py library. Use custom bevy_editor_cam branch to eliminate rendering flicker in the editor viewport. Correct aleph NixOS module configuration for elodin-db service startup. Save and restore window position, dimension, and physical screen information for multi-window setups. Improve Query Panel UI and add support for visualizing derived component data in the editor. Streamline the command-line experience when launching applications from the workspace root. Disable Bevy's file watching functionality to improve build consistency. Improve and clarify task automation commands in the project justfile. Maintain nix infrastructure and cache configuration. Correct the nix cache upload task. Include i2c debugging tools in the aleph development environment. Restrict version tagging to main branch to prevent accidental release tags on feature branches. Remove Basilisk dependency from the codebase. Recover and restore previously missing binary assets required by the project. ### Why it matters Support visualization of vector fields in the editor with arrow rendering for enhanced simulation analysis. ### Breaking Changes - Remove Basilisk (#326), Remove Basilisk dependency from the codebase. ### New Features - Add vector arrows visualization (#317), Support visualization of vector fields in the editor with arrow rendering for enhanced simulation analysis. - Add MSP Displayport OSD service and RC jet simulation example (#330), Introduces MSP Displayport OSD service for telemetry display and adds a new RC jet simulation example with schematic 3D transform support. - Support SITL Python module (#323), Enable software-in-the-loop (SITL) Python module integration for improved testing and simulation workflows. - Allow unique db save location in aleph, Add configuration option in aleph NixOS modules to specify custom database save locations. - Add option for alternate kernel conf in aleph, Support alternative kernel configuration options in aleph for flexible NixOS builds. - Persist window metadata across sessions (#302), Save and restore window position, dimension, and physical screen information for multi-window setups. ### Bug Fixes - Make axis-x lock shared across all windows (#298), Unify axis-x locking behavior in multi-window mode for consistent interaction across viewports. - Fix axes widget spinning indefinitely (#315), Resolve issue where the axes widget would continue rotating without user input. - Handle Ctrl-C interruption on macOS and Linux (#329), Ensure proper signal handling for Ctrl-C on Unix-like systems to gracefully interrupt simulations. - Fix pytest for libs/nox-py (#306), Restore Python test functionality in the nox-py library. - Fix bevy_editor_cam flicker issue (#310), Use custom bevy_editor_cam branch to eliminate rendering flicker in the editor viewport. - Fix default elodin-db boot service in aleph, Correct aleph NixOS module configuration for elodin-db service startup. ### Maintenance - Run app from top-level with cargo less verbosely (#303), Streamline the command-line experience when launching applications from the workspace root. - Remove Bevy's file_watcher feature (#311), Disable Bevy's file watching functionality to improve build consistency. - Refactor installation commands in justfile (#313), Improve and clarify task automation commands in the project justfile. - Update nix binary cache and clean trash (#309), Maintain nix infrastructure and cache configuration. - Fix nix cache upload command (#314), Correct the nix cache upload task. - Add i2c-tools to aleph-dev, Include i2c debugging tools in the aleph development environment. - Only tag on main branch for versioned release (#299), Restrict version tagging to main branch to prevent accidental release tags on feature branches. ### Other - Refactor Query Panel with derived component data visualization (#321), Improve Query Panel UI and add support for visualizing derived component data in the editor. - Restore missing assets (#307), Recover and restore previously missing binary assets required by the project. ## V0.15.3 _v0.15.3 · 2025-11-06_ Release v0.15.3 ### What changed Release v0.15.3 ### Why it matters Release v0.15.3 ### Maintenance - Release v0.15.3 (#294) ## V0.15.3-orphan _v0.15.3-orphan · 2025-11-06_ Enable systems to be conditionally executed based on specified conditions, providing more fine-grained control over simulation logic execution. ### What changed Enable systems to be conditionally executed based on specified conditions, providing more fine-grained control over simulation logic execution. Include the packet ID in error messages when a vtable lookup fails, improving debuggability of serialization issues. Add support for waiting on write operations to complete, enabling better synchronization in simulation workflows. Users can now clear the schematic through the Command Palette for easier workflow management in the 3D editor. Enable multi-window setups to be configured via KDL files, with follow-up features for improved window management. New profiling capability for the Python simulation benchmarking tool to analyze performance characteristics. Fix potential division by zero error in plotting operations that could cause crashes. Correct axes widget rendering to properly align with world space, improving visualization accuracy. Fix monitor box sizing to display correctly across different viewport configurations. Eliminate unnecessary run_time_step that was causing performance degradation in simulations. Add missing `None` as second argument in function call to fix runtime error. Transition from forked Bevy dependencies back to upstream to reduce maintenance burden and stay current with Bevy releases. Improve test reliability by implementing fsync for metadata, unique temporary directories, and deterministic ordering in concurrent write scenarios. ### Why it matters Enable systems to be conditionally executed based on specified conditions, providing more fine-grained control over simulation logic execution. ### New Features - Allow conditional systems (#269), Enable systems to be conditionally executed based on specified conditions, providing more fine-grained control over simulation logic execution. - Provide packet ID on no vtable error (#287), Include the packet ID in error messages when a vtable lookup fails, improving debuggability of serialization issues. - Implement wait_for_write functionality (#277), Add support for waiting on write operations to complete, enabling better synchronization in simulation workflows. - Add "Clear Schematic" command to Command Palette (#276), Users can now clear the schematic through the Command Palette for easier workflow management in the 3D editor. - Multi-window support from KDL configuration (#275), Enable multi-window setups to be configured via KDL files, with follow-up features for improved window management. - Add python sim.py bench --profile (#278), New profiling capability for the Python simulation benchmarking tool to analyze performance characteristics. ### Bug Fixes - Avoid divide by zero on plot (#270), Fix potential division by zero error in plotting operations that could cause crashes. - Fix axes widget to match world coordinates (#282), Correct axes widget rendering to properly align with world space, improving visualization accuracy. - Resize monitor boxes (#286), Fix monitor box sizing to display correctly across different viewport configurations. - Remove run_time_step to avoid slowdown (#285), Eliminate unnecessary run_time_step that was causing performance degradation in simulations. - Fix missing None argument (#288), Add missing `None` as second argument in function call to fix runtime error. ### Maintenance - Switch Bevy dependencies to upstream sources (#280), Transition from forked Bevy dependencies back to upstream to reduce maintenance burden and stay current with Bevy releases. - Deflake native snapshot tests with concurrent writer safety (#279), Improve test reliability by implementing fsync for metadata, unique temporary directories, and deterministic ordering in concurrent write scenarios. ## V0.15.2 _v0.15.2 · 2025-10-25_ Support for database snapshots is now integrated throughout the CLI, Python SDK, and visualization UI for improved data management and reproducibility. ### What changed Support for database snapshots is now integrated throughout the CLI, Python SDK, and visualization UI for improved data management and reproducibility. New plane object3d mesh primitive available for scene construction, with support in the ball example. Compass mesh primitive now available for 3D visualization in Elodin. The KDL directory can now be located anywhere by setting the ELODIN_KDL_DIR environment variable, improving workflow flexibility. Added validation for time range input in the command palette and enhanced runtime selection guards. Resolved issues in the sensor firmware stack. Corrected plane mesh builder implementation for proper Object3D conversion. Fixed inconsistency where viewport KDL flags were not preserved correctly during schematic serialization and deserialization. Corrected path reference in examples directory. Improved EQL formula implementation with comprehensive documentation and test coverage, including bug fixes in EqlContext. Reorganized Aleph NixOS modules to the repository root for improved project structure. Deprecated the create command from the CLI. Removed legacy arrow implementation and added normalize and body_frame utilities. Cleaned up the inspector UI by removing redundant component ID display. Reorganized and consolidated example simulations for better maintainability. Upgraded the Rust toolchain to version 1.90.0 with consolidated nix configuration changes. Transitioned continuous integration infrastructure to AWS for improved reliability and performance. Made tweaks to streamline onboarding for new developers setting up the project locally. Disallow snake_case in component names to maintain naming consistency across the codebase. Fixed typo in CLI reference documentation and applied code formatting improvements. ### Why it matters Support for database snapshots is now integrated throughout the CLI, Python SDK, and visualization UI for improved data management and reproducibility. ### Breaking Changes - Remove create command (#213), Deprecated the create command from the CLI. ### New Features - Add native DB snapshot support across Elodin CLI, Python & UI (#233), Support for database snapshots is now integrated throughout the CLI, Python SDK, and visualization UI for improved data management and reproducibility. - Add plane mesh to 3D visualization, New plane object3d mesh primitive available for scene construction, with support in the ball example. - Support compass mesh (#253), Compass mesh primitive now available for 3D visualization in Elodin. - Allow flexible KDL directory configuration (#244), The KDL directory can now be located anywhere by setting the ELODIN_KDL_DIR environment variable, improving workflow flexibility. - Improve command palette validation and runtime selection (#252), Added validation for time range input in the command palette and enhanced runtime selection guards. ### Bug Fixes - Fix sensor firmware tweaks (#215), Resolved issues in the sensor firmware stack. - Fix plane mesh builder conversion, Corrected plane mesh builder implementation for proper Object3D conversion. - Keep viewport KDL flags consistent across schematic save/load (#212), Fixed inconsistency where viewport KDL flags were not preserved correctly during schematic serialization and deserialization. - Fix incorrect example path (#256), Corrected path reference in examples directory. - Refactor EQL formulas with documentation and testing (#242), Improved EQL formula implementation with comprehensive documentation and test coverage, including bug fixes in EqlContext. ### Maintenance - Move Aleph to repository top level (#237), Reorganized Aleph NixOS modules to the repository root for improved project structure. - Remove old arrow implementation (#223), Removed legacy arrow implementation and added normalize and body_frame utilities. - Remove component ID from inspector header, Cleaned up the inspector UI by removing redundant component ID display. - Consolidate examples (#249), Reorganized and consolidated example simulations for better maintainability. - Update to Rust 1.90.0 (#194), Upgraded the Rust toolchain to version 1.90.0 with consolidated nix configuration changes. - Migrate CI to AWS (#254), Transitioned continuous integration infrastructure to AWS for improved reliability and performance. - Improve first-time developer experience (#257), Made tweaks to streamline onboarding for new developers setting up the project locally. - Enforce consistent component naming conventions (#236), Disallow snake_case in component names to maintain naming consistency across the codebase. - Documentation and minor fixes, Fixed typo in CLI reference documentation and applied code formatting improvements. ## V0.15.1 _v0.15.1 · 2025-10-11_ Visualization tool now supports specifying custom colors for graph lines directly in KDL configuration files. ### What changed Visualization tool now supports specifying custom colors for graph lines directly in KDL configuration files. Extended 3D rendering capabilities to include ellipsoid meshes with alpha channel support for transparent visualization. Added UI improvements to show simulation tick count and enable jumping to specific ticks during playback. Resolved stack overflow issue that occurred when evaluating noxpr expression graphs, improving stability of symbolic computations. Corrected serialization logic for component monitoring to ensure proper data persistence. Fixed regression that prevented graph inspector from restoring when clicking on title. Eliminated thread leak in database connection handling that could accumulate over long-running sessions. Re-enabled vector arrow visualization in schematics. Improved error handling to display user-friendly messages instead of panicking when invalid KDL is encountered. Added comprehensive READMEs for nox-ecs, nox-ecs-macros, nox, and EQL with usage examples and guides for adding new formulas. Resolved Rust compiler warnings to maintain code quality standards. Refreshed Nix flake and development dependencies for reproducible builds. Fixed build process to verify that Git LFS files are not LFS pointers when bundled with editor assets. ### Why it matters Visualization tool now supports specifying custom colors for graph lines directly in KDL configuration files. ### New Features - Add custom graph line colors in KDL (#193), Visualization tool now supports specifying custom colors for graph lines directly in KDL configuration files. - Add 3D ellipsoid mesh with color transparency support (#201), Extended 3D rendering capabilities to include ellipsoid meshes with alpha channel support for transparent visualization. - Display tick count and add "Goto tick…" command (#196), Added UI improvements to show simulation tick count and enable jumping to specific ticks during playback. ### Bug Fixes - Fix stack overflow in noxpr expression graph evaluation (#129), Resolved stack overflow issue that occurred when evaluating noxpr expression graphs, improving stability of symbolic computations. - Fix component monitor serialization (#189), Corrected serialization logic for component monitoring to ensure proper data persistence. - Restore graph inspector on title click (#199), Fixed regression that prevented graph inspector from restoring when clicking on title. - Fix database connection thread leak (#198), Eliminated thread leak in database connection handling that could accumulate over long-running sessions. - Restore vector arrow schematic support (#210), Re-enabled vector arrow visualization in schematics. - Handle invalid KDL gracefully with helpful error messages (#202), Improved error handling to display user-friendly messages instead of panicking when invalid KDL is encountered. ### Maintenance - Expand nox-ecs and EQL documentation, Added comprehensive READMEs for nox-ecs, nox-ecs-macros, nox, and EQL with usage examples and guides for adding new formulas. - Fix Clippy linting issues (#185), Resolved Rust compiler warnings to maintain code quality standards. - Update Nix development environment (#182), Refreshed Nix flake and development dependencies for reproducible builds. - Ensure LFS files are properly tracked (#206), Fixed build process to verify that Git LFS files are not LFS pointers when bundled with editor assets. ## V0.15.0 _v0.15.0 · 2025-09-26_ Flight software can now configure a custom location for the time-series database, providing flexibility in deployment scenarios on NVIDIA Orin hardware. ### What changed Flight software can now configure a custom location for the time-series database, providing flexibility in deployment scenarios on NVIDIA Orin hardware. Improved user experience for data visualization in the 3D editor with better zoom and pan controls for analyzing telemetry plots. Component listings in the visualization tool are now alphabetically sorted for easier navigation. Container tabs in the UI can now be renamed and customized, with settings persisted in KDL configuration. Python SDK now supports discovering and introspecting available components for simulation development. New Rust example demonstrating flight software telemetry control via the Elodin-DB time-series database. Flight software stack now includes DeepStream for video processing capabilities on NVIDIA Orin. Added and improved documentation for nox_array, nox_frames, and noxpr Python packages. Corrected API reference in migration guide from world.schematics() to world.schematic(). ### Why it matters Flight software can now configure a custom location for the time-series database, providing flexibility in deployment scenarios on NVIDIA Orin hardware. ### New Features - Allow custom save location for database in Aleph (#131), Flight software can now configure a custom location for the time-series database, providing flexibility in deployment scenarios on NVIDIA Orin hardware. - Enhanced plot zoom and pan interactions (#144), Improved user experience for data visualization in the 3D editor with better zoom and pan controls for analyzing telemetry plots. - Sort components by name in UI (#151), Component listings in the visualization tool are now alphabetically sorted for easier navigation. - Editable container tab titles with KDL persistence (#128), Container tabs in the UI can now be renamed and customized, with settings persisted in KDL configuration. - Component discovery Python command (#157), Python SDK now supports discovering and introspecting available components for simulation development. - Rocket trim client control example (#145), New Rust example demonstrating flight software telemetry control via the Elodin-DB time-series database. - Add DeepStream binary to Aleph (#124), Flight software stack now includes DeepStream for video processing capabilities on NVIDIA Orin. ### Bug Fixes - Fix migration documentation typo (#120), Corrected API reference in migration guide from world.schematics() to world.schematic(). ### Maintenance - Documentation and README updates (#153), Added and improved documentation for nox_array, nox_frames, and noxpr Python packages. ## V0.15.0-alpha.1 _v0.15.0-alpha.1 · 2025-09-18_ Refactored away the entity-based architecture that was core to the previous design. This is a significant architectural change affecting how simulations are structured. ### What changed Refactored away the entity-based architecture that was core to the previous design. This is a significant architectural change affecting how simulations are structured. Introduced schematics for representing UI and visual elements in the editor, providing a structured way to define and manage simulation components. Updated the editor license to a dual MIT and Apache 2.0 license model. Made schematic persistence operations available through the editor UI, allowing users to save and load simulation configurations. Implemented automatic tick advancement for JaxSim-based simulations, improving the simulation workflow. Set up automated documentation deployment to GitHub Pages with preview builds for pull requests. Migrated from previous object storage solution to Cloudflare R2, simplifying the storage infrastructure. Corrected issues with archive saving and history retrieval in the time-series database. Resolved a memory leak in entity management that was causing resource exhaustion. Corrected USB gadget networking configuration to use proper unicast addressing. Resolved networking issues when running aleph NixOS modules on macOS systems. Removed the GPU variant of the onyxruntime PyPI wheel from aleph to resolve compatibility issues. Added fallback mechanism for Nix builds to improve robustness of the build system. Cleaned up obsolete CI/CD automation that was no longer needed. Improved and expanded README files across the repository to better document the codebase and development workflow. Cleaned up legacy infrastructure related to the previous docs deployment pipeline. ### Why it matters Refactored away the entity-based architecture that was core to the previous design. This is a significant architectural change affecting how simulations are structured. ### Breaking Changes - Remove entity system from core library (#88), Refactored away the entity-based architecture that was core to the previous design. This is a significant architectural change affecting how simulations are structured. ### New Features - Add schematic configuration system (#89), Introduced schematics for representing UI and visual elements in the editor, providing a structured way to define and manage simulation components. - Expose schematic saving and loading in editor (#117), Made schematic persistence operations available through the editor UI, allowing users to save and load simulation configurations. - Add auto-tick advancement to JaxSim (#127), Implemented automatic tick advancement for JaxSim-based simulations, improving the simulation workflow. - Add GitHub Pages deployment with PR previews (#102), Set up automated documentation deployment to GitHub Pages with preview builds for pull requests. ### Bug Fixes - Fix save_archive and history() functions (#90), Corrected issues with archive saving and history retrieval in the time-series database. - Fix entity leak (#107), Resolved a memory leak in entity management that was causing resource exhaustion. - Fix USB gadget MAC address to unicast in aleph-os (#95), Corrected USB gadget networking configuration to use proper unicast addressing. - Fix macOS networking support in aleph (#119), Resolved networking issues when running aleph NixOS modules on macOS systems. - Disable onyxruntime_gpu PyPI wheel in aleph (#121), Removed the GPU variant of the onyxruntime PyPI wheel from aleph to resolve compatibility issues. ### Maintenance - Switch to Cloudflare R2 for object storage (#106), Migrated from previous object storage solution to Cloudflare R2, simplifying the storage infrastructure. - Enable Nix build fallback (#126), Added fallback mechanism for Nix builds to improve robustness of the build system. - Remove deprecated GitHub Actions for Buildkite trigger (#123), Cleaned up obsolete CI/CD automation that was no longer needed. - Update documentation and READMEs, Improved and expanded README files across the repository to better document the codebase and development workflow. - Remove obsolete documentation release process (#111), Cleaned up legacy infrastructure related to the previous docs deployment pipeline. ### Other - Switch editor to MIT + Apache 2.0 dual licensing (#92), Updated the editor license to a dual MIT and Apache 2.0 license model. ## V0.14.2 _v0.14.2 · 2025-06-17_ Extended the database API with convenient C++ helpers for managing entity naming, improving the developer experience when working with db entities. ### What changed Extended the database API with convenient C++ helpers for managing entity naming, improving the developer experience when working with db entities. Integrated video streaming and playback capabilities into both the database and the elodin editor, enabling better visualization of flight data and simulations. Users can now switch between different color schemes in the elodin editor for improved visual customization. Refactored the editor's sidebar implementation to use a tile-based layout system for better flexibility and UX. Implemented support for creating plots directly from SQL queries in the database, enabling more flexible data visualization workflows. Added support for the FM24CL16B FRAM memory device and updated the board support package for flight computers to version 2.0. Flight software now initializes USB hubs via SMBus protocol, improving peripheral connectivity on flight hardware. Added EQL (Elodin Query Language), a domain-specific language for intuitive querying of the elodin database without raw SQL. Enhanced the OpenOCD debugging workflow for firmware development with better tooling and configuration. Flight firmware now supports writing to UART6 to facilitate debugprobe integration and testing. Re-enabled no-std compatibility in the impeller2 crate and performed dependency cleanup to reduce bloat. Corrected USB serial communication issues specific to the Aleph Flight Computer 2.0 hardware. Removed outdated references to the paracosm project from the codebase. Migrated from twine to the uv tool for more reliable and modern Python package publication workflows. Added a simple C-based blinky firmware example for basic hardware validation. ### Why it matters Extended the database API with convenient C++ helpers for managing entity naming, improving the developer experience when working with db entities. ### New Features - Add C++ helpers for setting entity names in db (#66), Extended the database API with convenient C++ helpers for managing entity naming, improving the developer experience when working with db entities. - Add video streaming and playback to db and editor (#67), Integrated video streaming and playback capabilities into both the database and the elodin editor, enabling better visualization of flight data and simulations. - Add color scheme switching to editor (#70), Users can now switch between different color schemes in the elodin editor for improved visual customization. - Redesign sidebars as tiles in editor (#73), Refactored the editor's sidebar implementation to use a tile-based layout system for better flexibility and UX. - Add SQL plots support (#74), Implemented support for creating plots directly from SQL queries in the database, enabling more flexible data visualization workflows. - Add FM24CL16B FRAM driver and update BSP to 2.0 FC (#68), Added support for the FM24CL16B FRAM memory device and updated the board support package for flight computers to version 2.0. - Add USB hub initialization over SMBus (#79), Flight software now initializes USB hubs via SMBus protocol, improving peripheral connectivity on flight hardware. - Introduce EQL: mini DSL for querying elodin-db (#78), Added EQL (Elodin Query Language), a domain-specific language for intuitive querying of the elodin database without raw SQL. - Improve OpenOCD workflow (#81), Enhanced the OpenOCD debugging workflow for firmware development with better tooling and configuration. - Add UART6 write support for debugprobe testing (#84), Flight firmware now supports writing to UART6 to facilitate debugprobe integration and testing. ### Bug Fixes - Restore no-std support to impeller2 and clean up dependencies (#76), Re-enabled no-std compatibility in the impeller2 crate and performed dependency cleanup to reduce bloat. - Fix USB serial implementation on Aleph FC 2.0 (#85), Corrected USB serial communication issues specific to the Aleph Flight Computer 2.0 hardware. ### Maintenance - Clean up legacy paracosm references (#77), Removed outdated references to the paracosm project from the codebase. - Replace twine with uv for Python package publishing (#75), Migrated from twine to the uv tool for more reliable and modern Python package publication workflows. ### Other - Add C blinky example (#82), Added a simple C-based blinky firmware example for basic hardware validation. ## V0.14.1 _v0.14.1 · 2025-05-10_ Updated the elodin editor from Bevy 0.15 to 0.16, bringing improved rendering and simulation capabilities. ### What changed Updated the elodin editor from Bevy 0.15 to 0.16, bringing improved rendering and simulation capabilities. Extended the time-series database with support for SQL stream tables, enabling more flexible telemetry queries. Extended the C++ API with VTableBuilder and VTableStream for easier integration with external systems and UDP telemetry streaming. Exposed VTableStream functionality in the main C++ header for telemetry streaming. Added support for manual Y-axis bounds on plots and ability to change plot line colors for better visualization control. Provided a Nix flake template to simplify setup of aleph development environments. Added Docker compatibility layer to aleph-os for easier containerized deployments. Improved aleph-os bootstrapping by automatically generating unique hostnames based on hardware serial numbers. Optimized database writes to use a single timestamp across all columns in a table for better consistency. Performance optimization to reduce heap allocations in the time-series database response path. Corrected Arrow interprocess communication format to ensure proper serialization of telemetry data. Corrected CI pipeline to properly upload aleph-os SD images to Google Cloud Storage on main branch builds. Improved aleph-os security by storing trusted keys persistently in 1Password instead of ephemeral storage. Fixed NixOS configuration to ensure the podman group is created regardless of other settings. Fixed CI scripts to properly propagate exit codes for better error detection in build pipelines. Updated NVIDIA Jetpack NixOS modules to fix compatibility issues and bring in latest improvements. Reduced SD image size through compression and extended the inscriber tool with zstd decompression support. Added automatic SD image uploads to Google Cloud Storage for official builds. Provided convenient installation script for the elodin editor. Created reproducible NixOS configuration for hosting project documentation. Simplified Nix flake configuration by removing flake-parts dependency. Rotated SSH credentials for documentation server access. Improved onboarding with clear documentation for fresh aleph-os installations. Updated documentation to reflect current probe-rs requirements. Added PyDDA support and resolved CUDA library discovery issues in the Python environment. Enhanced initial setup and configuration of aleph sys… ### Why it matters Updated the elodin editor from Bevy 0.15 to 0.16, bringing improved rendering and simulation capabilities. ### New Features - Bump Bevy editor to 0.16 (#51), Updated the elodin editor from Bevy 0.15 to 0.16, bringing improved rendering and simulation capabilities. - Add SQL stream tables to database (#60), Extended the time-series database with support for SQL stream tables, enabling more flexible telemetry queries. - Add VTableBuilder and VTableStream C++ API (#56), Extended the C++ API with VTableBuilder and VTableStream for easier integration with external systems and UDP telemetry streaming. - Add VTableStream to dp.hpp (#65), Exposed VTableStream functionality in the main C++ header for telemetry streaming. - Add editor features and plot enhancements (#53), Added support for manual Y-axis bounds on plots and ability to change plot line colors for better visualization control. - Add flake template for NixOS systems (#40), Provided a Nix flake template to simplify setup of aleph development environments. - Add docker compatibility shim to aleph-os (#52), Added Docker compatibility layer to aleph-os for easier containerized deployments. - Use hardware serial number to generate hostname (#41), Improved aleph-os bootstrapping by automatically generating unique hostnames based on hardware serial numbers. - Use same timestamp for entire database table write (#55), Optimized database writes to use a single timestamp across all columns in a table for better consistency. - Remove allocations when sending database responses (#34), Performance optimization to reduce heap allocations in the time-series database response path. - Improve aleph bootstrapping process (#43), Enhanced initial setup and configuration of aleph systems for better reliability and developer experience. ### Bug Fixes - Fix invalid Arrow IPC format in database (#45), Corrected Arrow interprocess communication format to ensure proper serialization of telemetry data. - Fix SD image upload to GCS (#49), Corrected CI pipeline to properly upload aleph-os SD images to Google Cloud Storage on main branch builds. - Replace ephemeral trusted key with persistent key from 1Password (#37), Improved aleph-os security by storing trusted keys persistently in 1Password instead of ephemeral storage. - Always create podman group in aleph-os (#58), Fixed NixOS configuration to ensure the podman group is created regardless of other settings. - Propagate error codes correctly in CI (#38), Fixed CI scripts to properly propagate exit codes for better error detection in build pipelines. - Bump jetpack-nixos to latest versions (#35), Updated NVIDIA Jetpack NixOS modules to fix compatibility issues and bring in latest improvements. - Add pycuda and fix libcuda.so not found issue (#42), Added PyDDA support and resolved CUDA library discovery issues in the Python environment. - Fix release flow (#63), Corrected release automation to ensure proper versioning and artifact generation. ### Maintenance - Compress aleph-os SD image and add zstd support to inscriber (#36), Reduced SD image size through compression and extended the inscriber tool with zstd decompression support. - Upload SD image to GCS on main builds (#44), Added automatic SD image uploads to Google Cloud Storage for official builds. - Add install script for editor (#54), Provided convenient installation script for the elodin editor. - Add NixOS config for docs hosting (#48), Created reproducible NixOS configuration for hosting project documentation. - Remove flake-parts from build system (#47), Simplified Nix flake configuration by removing flake-parts dependency. - Update SSH key for docs host (#50), Rotated SSH credentials for documentation server access. - Add easy fresh install documentation (#46), Improved onboarding with clear documentation for fresh aleph-os installations. - Don't recommend older probe-rs version (#39), Updated documentation to reflect current probe-rs requirements. ## V0.14.0 _v0.14.0 · 2025-04-23_ Enhanced the NixOS flight software stack with CUDA support and additional L4T packages to improve GPU compute capabilities on NVIDIA Orin hardware. ### What changed Enhanced the NixOS flight software stack with CUDA support and additional L4T packages to improve GPU compute capabilities on NVIDIA Orin hardware. Configured the Aleph OS image to use the project's CI server as a binary cache, reducing build times for deployments. Replaced previous WiFi management approach with iwd and iwctl for more robust network configuration on flight hardware. Introduced tegrastats bridge and aleph-status utility to expose Orin hardware statistics for telemetry and monitoring. Introduced aleph-setup tool to simplify initial device configuration, including WiFi connection and user account creation. Enabled configuration of local user modules in the Aleph OS stack for greater deployment flexibility. Automatically generate unique hostnames with random suffixes to prevent conflicts in multi-device deployments. Refactored the time-series database to support CSV archiving of telemetry data and eliminated global state patterns. Refactored virtual table implementation to use a bytecode-style format for improved performance and maintainability. Resolved test failures in the maitake async runtime due to missing tracing dependencies. Corrected Nix build configuration for the elodin-cli tool. Updated tegrastats bridge to properly support NVIDIA Orin NX and Nano 8GB variants. Fixed UEFI flashing functionality and integrated it into the CI pipeline. Resolved a runtime issue in the stellar library's reactor cleanup code. Corrected overly aggressive cache invalidation logic that was causing unnecessary rebuilds. Optimized the timeline visualization in the Bevy-based elodin editor to improve rendering performance. Added comprehensive integration test suite for the time-series database component. Simplified and optimized Nix source filtering configuration in the Aleph OS module. General improvements and refinements to the Aleph OS stack for better developer experience. Enhanced deployment tooling with better support for remote builds and offline scenarios. Refactored user management to use Nix mutable user configuration patterns instead of shell scripts. Added GPL-3.0 license files to clarify the project's open source licensing. Update Cargo.lock Expanded Aleph OS documentation to help users get started with the flight software stack. ### Why it matters Enhanced the NixOS flight software stack with CUDA support and additional L4T packages to improve GPU compute capabilities on NVIDIA Orin hardware. ### New Features - Add CUDA and L4T packages to Aleph OS image (#928), Enhanced the NixOS flight software stack with CUDA support and additional L4T packages to improve GPU compute capabilities on NVIDIA Orin hardware. - Include CI server as binary cache in Aleph OS (#942), Configured the Aleph OS image to use the project's CI server as a binary cache, reducing build times for deployments. - Add WiFi management with iwd/iwctl to Aleph OS (#949), Replaced previous WiFi management approach with iwd and iwctl for more robust network configuration on flight hardware. - Add tegrastats bridge and aleph-status monitoring tool, Introduced tegrastats bridge and aleph-status utility to expose Orin hardware statistics for telemetry and monitoring. - Add aleph-setup tool for device provisioning, Introduced aleph-setup tool to simplify initial device configuration, including WiFi connection and user account creation. - Support local user modules in Aleph OS, Enabled configuration of local user modules in the Aleph OS stack for greater deployment flexibility. - Add random suffix to hostname, Automatically generate unique hostnames with random suffixes to prevent conflicts in multi-device deployments. - Add CSV archiving and remove Globals from database (#943), Refactored the time-series database to support CSV archiving of telemetry data and eliminated global state patterns. - Switch VTable implementation to Bytecode format, Refactored virtual table implementation to use a bytecode-style format for improved performance and maintainability. ### Bug Fixes - Fix missing tracing_02 in maitake tests (#938), Resolved test failures in the maitake async runtime due to missing tracing dependencies. - Fix elodin-cli Nix build (#937), Corrected Nix build configuration for the elodin-cli tool. - Fix tegrastats bridge compatibility for Orin NX and Nano variants, Updated tegrastats bridge to properly support NVIDIA Orin NX and Nano 8GB variants. - Fix flash-uefi and add to CI, Fixed UEFI flashing functionality and integrated it into the CI pipeline. - Fix nested reactor access in stellar cleanup, Resolved a runtime issue in the stellar library's reactor cleanup code. - Fix overzealous cache invalidation (#948), Corrected overly aggressive cache invalidation logic that was causing unnecessary rebuilds. - Only draw timeline ticks in visible range in editor (#947), Optimized the timeline visualization in the Bevy-based elodin editor to improve rendering performance. ### Maintenance - Add integration tests for elodin-db (#941), Added comprehensive integration test suite for the time-series database component. - Clean up Aleph OS Nix source filters, Simplified and optimized Nix source filtering configuration in the Aleph OS module. - Reduce friction in Aleph OS (#933), General improvements and refinements to the Aleph OS stack for better developer experience. - Improve remote and offline build support and deploy.sh arguments, Enhanced deployment tooling with better support for remote builds and offline scenarios. - Use mutable users instead of create_user_module.sh script, Refactored user management to use Nix mutable user configuration patterns instead of shell scripts. - Add GPL-3.0 LICENSE files, Added GPL-3.0 license files to clarify the project's open source licensing. - Update Cargo.lock - Add documentation to Aleph README (#946), Expanded Aleph OS documentation to help users get started with the flight software stack. ## V0.13.2 _v0.13.2 · 2025-04-11_ Database dump metadata responses now correctly include the request ID field. ### What changed Database dump metadata responses now correctly include the request ID field. Presence of a vtable without associated data would cause the editor to malfunction. This has been corrected. Dynamic array stride calculations in the Python SDK were producing incorrect results. Ball example simulation and the bench command have been fixed, with tests added to CI to prevent regressions. Web server and authentication components have been removed from the codebase. Python SDK now supports tree transformations for improved data manipulation. Editor now supports presets for common configurations and workflows. Database can now save and load archives for snapshots and data export. C++ applications can now interface with the database, and SQL table display in the editor has been improved. Includes Client type for impeller2-stellar. Drone simulation example now includes a sensor telemetry display panel. Editor now supports actions—buttons that can trigger Lua script execution. New flight software service for LQR-based attitude control has been added to the fsw stack. Database now includes an Axum-based HTTP server for remote access and API endpoints. Flight software can now send GPIO commands to the STM32 microcontroller from the Orin host. Database can now store and rebroadcast messages, enabling data replay and logging scenarios. MEKF sensor fusion module now supports external configuration files. Database now accepts messages via UDP in addition to existing transports. Database streaming protocol now includes stateless UDP stream support. Editor graphics system now properly manages GPU buffer memory with automatic garbage collection. Editor plot widgets now support touch screen interactions for better usability on touchscreen displays. Editor can now display and query data from database tables using SQL. Editor now includes a time selector widget for navigating recorded telemetry. Database now supports SQL queries for flexible data retrieval and analysis. Component monitor panel in the editor has been redesigned and improved. Flight software telemetry now uses UART instead of USB for more reliable hardware integration. New just commands for resetting and flashing the STM32 microcontroller. MEKF sensor fusion module is now included in the standard Aleph flight software stack image. Serial bridge has been updated for tickless architecture and a… ### Why it matters Database dump metadata responses now correctly include the request ID field. ### Breaking Changes - Remove web and authentication infrastructure (#927), Web server and authentication components have been removed from the codebase. ### New Features - Add py-tree transformations (#922), Python SDK now supports tree transformations for improved data manipulation. - Add editor presets (#916), Editor now supports presets for common configurations and workflows. - Add database archive save functionality (#914), Database can now save and load archives for snapshots and data export. - Add C++ bindings for database and improve SQL table UI (#913), C++ applications can now interface with the database, and SQL table display in the editor has been improved. Includes Client type for impeller2-stellar. - Add sensor panel to drone simulation example (#918), Drone simulation example now includes a sensor telemetry display panel. - Add editor actions for Lua scripting (#902), Editor now supports actions—buttons that can trigger Lua script execution. - Add LQR attitude control service (#901), New flight software service for LQR-based attitude control has been added to the fsw stack. - Add Axum HTTP server to database (#903), Database now includes an Axum-based HTTP server for remote access and API endpoints. - Add GPIO command support for STM32 (#897), Flight software can now send GPIO commands to the STM32 microcontroller from the Orin host. - Add message storage and rebroadcast to database (#896), Database can now store and rebroadcast messages, enabling data replay and logging scenarios. - Add configuration file support to MEKF (#894), MEKF sensor fusion module now supports external configuration files. - Add UDP message support to database (#908), Database now accepts messages via UDP in addition to existing transports. - Add stateless UDP streams for database (#907), Database streaming protocol now includes stateless UDP stream support. - Add GPU buffer garbage collection to editor (#891), Editor graphics system now properly manages GPU buffer memory with automatic garbage collection. - Add touch screen support to editor plots (#881), Editor plot widgets now support touch screen interactions for better usability on touchscreen displays. - Add SQL table support to editor (#880), Editor can now display and query data from database tables using SQL. - Add time selector to editor (#877), Editor now includes a time selector widget for navigating recorded telemetry. - Add SQL query support to database (#876), Database now supports SQL queries for flexible data retrieval and analysis. - Update component monitor UI (#878), Component monitor panel in the editor has been redesigned and improved. - Replace USB telemetry sink with UART in flight software (#883), Flight software telemetry now uses UART instead of USB for more reliable hardware integration. - Add MCU reset and flash helper commands (#900), New just commands for resetting and flashing the STM32 microcontroller. - Add MEKF to Aleph NixOS image (#892), MEKF sensor fusion module is now included in the standard Aleph flight software stack image. - Update serial bridge for tickless operation (#889), Serial bridge has been updated for tickless architecture and added to Aleph image. ### Bug Fixes - Fix request ID in database dump metadata response (#936), Database dump metadata responses now correctly include the request ID field. - Fix editor issues caused by empty virtual tables (#934), Presence of a vtable without associated data would cause the editor to malfunction. This has been corrected. - Fix stride calculation for dynamic arrays in nox-py (#924), Dynamic array stride calculations in the Python SDK were producing incorrect results. - Fix ball example and bench command (#923), Ball example simulation and the bench command have been fixed, with tests added to CI to prevent regressions. - Fix database open failure when no messages written (#899), Database now handles the case where it's opened before any messages have been written. - Fix database output line handling (#898), Database output now correctly clears lines on each cycle to prevent display corruption. - Fix database SQL functionality on Linux (#884), SQL query support in database was broken on Linux and has been restored. - Fix database metadata loading on open (#888), Database was not loading metadata when opened; this has been fixed. - Fix J2 perturbation radius calculation (#885), J2 Earth oblateness perturbation model had an incorrect radius calculation. ### Maintenance - Update to Rust 2024 edition (#893), Entire codebase has been migrated to Rust 2024 edition. - Add MEKF configuration for Aleph (#892), MEKF configuration and setup documentation added for Aleph-based systems. - Add sensor panel to drone simulation (#918), Drone example simulation now displays sensor telemetry in a panel. - Remove tracing-02 dependency (#929), Removed unused tracing-02 crate to simplify dependencies. - Fix clippy lint warnings (#932), Resolved clippy linting issues across the codebase. - Update CI runner to Ubuntu 22.04 (#930), CI pipeline now runs on Ubuntu 22.04-xl instead of Ubuntu 20.04. - Add GPL fallback license (#931), Updated README with GPL fallback license terms. - Fix FlakeHub build and CI (#921), FlakeHub publishing builds have been fixed to work with current infrastructure. - Remove unused Aleph flake outputs (#917), Cleaned up unused outputs from Aleph NixOS flake configuration. - Build C example in CI (#915), C language example is now compiled as part of CI to catch regressions early. - Add packages to NixOS image (#912), Additional packages have been added to the default Aleph NixOS flight software image. - Fix Windows build for stellarator example (#911), Stellarator example now compiles correctly on Windows. - Fix typo in documentation (#905), Fixed spelling error in documentation (Eloidin → Elodin). - Add NixOS VM setup instructions (#858), Documentation now includes instructions for setting up Elodin in a NixOS virtual machine. - Add database mirroring documentation (#909), Documentation added explaining how to mirror database data between instances. - Add database and Aleph installation documentation (#904), New documentation covers installation and setup of database and Aleph flight software stack. - Flatten database state and deduplicate metadata handling (#890), Database internal state management has been simplified and metadata handling consolidated. - Rename identifiers (undashify) (#882), Internal identifiers have been renamed for consistency. - Disable syntastica plugin to fix compilation (#887), Syntastica syntax highlighting plugin disabled to resolve compilation issues. - Bump Rust version (#875), Rust toolchain version has been updated.