Skip to content

Releases: Positronic-Robotics/positronic

v0.2.1

31 Mar 21:45
e406176

Choose a tag to compare

Fixes

  • Fix PyPI installability: openpi-client moved from core dependency to optional [openpi] extra — resolves numpy version conflict with rerun-sdk==0.30.0 that made pip install positronic fall back to 0.1.1
  • DreamZero vendor now uses positronic.utils.serialization instead of openpi_client.msgpack_numpy (wire-compatible)
  • Default server port changed from 5000 to 8400 (Docker Compose configs updated accordingly)

v0.2.0 — PhAIL Launch

31 Mar 17:13
295dac0

Choose a tag to compare

Full pipeline and infrastructure for the PhAIL launch: real-robot evaluation of VLA models on commercial picking tasks with production metrics (UPH, completion rate, availability).

PhAIL

  • Evaluation harness with RUN/STOP/HOME directives and balanced multi-policy sampling (#366, #370, #373)
  • Production visualization server with leaderboard, baselines, and per-object metric aggregation (#338, #340, #376)
  • Dataset release pipeline with versioned public S3 layout and verification (#376)
  • Unified eval configs with UPH and MTBF metrics (#286)
  • Per-machine Docker Compose configs for multi-robot deployment (#344, #356)

Vendors

  • LeRobot 0.4.x (SmolVLA, ACT, Diffusion) – full training and inference (#328)
  • DreamZero (NVIDIA 14B World Action Model) – inference, LoRA fine-tuning, wan2.1/wan2.2 backbones (#326, #333, #369). Work in progress.
  • GR00T N1.6 update with 6D rotation representation (#266, #268)
  • Refactored vendor-specific code into positronic/vendors/ modules (#278, #288)
  • Extracted VendorServer base class with startup warmup and dynamic checkpoint loading (#259, #330, #352)

Codecs & Inference

  • Composable Codec with | and & operators (#307, #312)
  • Client-side codecs decoupled from inference servers (#313)
  • Trajectory-based codec variants for data conversion (#296)
  • Offboard inference server and remote policy (#246, #265)
  • Status-based WebSocket protocol for model loading (#283)
  • Policy refactored to return action chunks with delegated buffering (#254)
  • Joint-space targets from recorded EE targets via IK (#347)

Dataset

  • Remote dataset server and client for HTTP-based access (#269)
  • Public dataset access via positronic-public S3 bucket (#270)
  • Dataset quality signals and episode filtering (#322)
  • diff, norm, and scalar aggregators for signal transforms (#323)
  • Generalized migration tool to work with any Dataset source (#376)
  • Lazy evaluation for episode transforms (#272)
  • Dataset configs refactored into cfg/ds/ with public/internal separation (#277)
  • Mark unfinished episodes and ignore them on reading (#250)

Visualization

  • 3D trajectory visualization with URDF robot model in Rerun viewer (#318, #362)
  • Filtered episode navigation and URL-based time seek (#325, #332)
  • Optimized RRD generation: AssetVideo, send_columns, fixed O(N²) trajectory trail (#320, #321)
  • RecordingCodec for rerun-based inference introspection (#310)

Hardware

  • Make Franka Robot picklable by deferring connection (#360)
  • Explicit Recover command for robot error recovery (#308)
  • Franka driver upgrade with ee_wrench capabilities

Infrastructure

  • Extracted pos3 S3 library to a separate package
  • lerobot made an optional dependency (#324)
  • Packaging CI check for missing data files (#358)
  • Parameterized Docker image tags for parallel branch workflows (#329)

v0.1.1

07 Oct 15:03

Choose a tag to compare

[0.1.1] - 2025-10-07

This release is focused on addressing bugs and subtle inaccuracies of v0.1.0. With it, the end-to-end workflow as described in README.md is working.

Added

  • Observer system to MujocoSim for computing simulation metrics (#158)
  • DsPlayerAgent to replay datasets with replay_record.py script (#155)
  • Movement sensitivity parameter for controller input (#152)
  • Discord webhook integration for merged PR announcements (#153)

Changed

  • InferenceCommand class to manage inference lifecycle (#149)
  • Split positronic.dataset.transforms into several submodules for better organization (#157)
  • Refactored RelativeTargetPositionAction to use robot_state.ee_pose for position and quaternion inputs, removing the RelativeRobotPositionAction class (#166)
  • Updated dataset transforms and policy wiring to align with LeRobot updates (#164)
  • Encode state in inference consistently to data collection for E2E workflow (#166)
  • Enabled true streaming of episode RRD data over FastAPI (#160)
  • Enhanced WebXR iPhone HUD button behavior with toggle states (#151)
  • Bundled rerun viewer assets locally and updated episode template to self-host the iframe (#150)
  • Improved GUI camera initialization and WebXR host discovery (#148)
  • Formalized contribution guidelines and updated workflow checks (#156)
  • Updated action configuration approach (#164)

Fixed

  • Fixed bug where simulator data reported the same values across episode (#162)
  • Home directory resolution (~) support to LocalDataset and LocalDatasetWriter (#154)
  • Fixed inference reset issues in MujocoSim (#158)
  • Fixed wrong feature name in observation encoder (#164)
  • Fixed wrong image resizing call (#164)
  • Fixed bug in ActionDecoder implementations (#164)
  • Fixed case where signals are empty in Episode duration property (#165)
  • Fixed formatting and lint errors (#159)
  • Fixed bug when mujoco state was written at the end of episode instead of at the beginning (#155)
  • Reset method to PI0RemotePolicy class (#149)

Improved

  • Raised clear error when dataset path is wrong (#163)
  • Removed excessive FPS logging in MujocoCamera (#167, #165)
  • Inference script now reports meta information and success metrics for simulation tasks (#161)
  • Added utility for exporting transformed datasets to disk (#164)
  • Introduced KeyFuncEpisodeTransform to simplify creating EpisodeTransforms (#164)
  • EpisodeWriter now aborts when context is exited with exception (#164)
  • Increased queue size of Inference.command receiver to avoid drops of reset command (#158)
  • Device detection function for inference (#149)

v0.1.0

23 Sep 13:14

Choose a tag to compare

Initial release that implements full ML-robotics workflow

Release candidate 1 for v0.1.0

22 Aug 09:50

Choose a tag to compare

Pre-release

Preparing for release