Spaces:
Paused
Paused
Commit History
25 days ago
-
Keep the default Modal deploy free of stored data
Chandra KiranUnverified signatureCosmos Reason (its 16 GB model Volume, which Modal bills even under a $0 spend limit) is now opt-in with ENABLE_COSMOS=1 at deploy, and AUTO_REVIEW defaults to off. The Hugging Face secret is only attached when MODAL_HF_SECRET is set; without it dataset exports come back as a zip in R2. The basic deploy needs only the R2 secret. New: python -m api.storage expire --days 30 deletes old run files so the bucket stays inside R2's free tier.916d469
26 days ago
-
Add Isaac Sim RTX renders of finished runs
Chandra KiranUnverified signaturePOST /simulate/run/{id}/isaac replays a run in Isaac Sim: worker/usd_scene.py builds a USD stage from the MuJoCo model with every body's pose time-sampled from the run (and a camera that tracks the robot like the MuJoCo video), and Isaac Sim only renders it frame by frame with RTX - no second physics engine, so both videos show the same motion. Deployed as its own Modal app on an L4 (worker/modal_isaac.py) so its large image never slows the main deploy; limited to ISAAC_DAILY_LIMIT renders a day (default 10). The USD stage is tested against MuJoCo's geom positions frame by frame; the Isaac Sim step itself needs the NGC image and a GPU and has not been run yet.2fc178d -
Export runs as LeRobot datasets
Chandra KiranUnverified signaturePOST /datasets/export turns finished runs of one robot into a LeRobot dataset: observation.state and .velocity (the robot's joints), action (the commanded controls), observation.images.main (the video, 640x360) and the scenario text as the task. With HF_TOKEN in the Modal secret it is pushed to the Hub as a private dataset; otherwise the zip is stored with the job. Verified end to end with lerobot 0.4.4 (write, then load back); CI repeats that with a Go2. Trajectories now also carry every body's world pose, for replay renders.b357d7d -
Add a first-pass video review with NVIDIA Cosmos Reason
Chandra KiranUnverified signatureEvery finished run with a video gets a follow-up job (AUTO_REVIEW, on by default; or POST /simulate/run/{id}/review): Cosmos Reason on a Modal L4 watches the video at 2 fps next to the scenario text and the simulator's facts, and answers whether the scene matches, whether the physics look plausible and whether the robot fell, with its reasoning. The verdict shows on the run's report. Weights live in a Modal volume filled once by download_cosmos. Runs now also save trajectory.npz (robot joint positions, velocities and controls at 30 Hz) for dataset export.6772038 -
Fix the broken-build sample and make build error summaries clearer
Chandra KiranUnverified signatureThe sample lacked <description>, so it failed in package.xml parsing instead of the compiler. Error summaries now skip bare Traceback headers and keep the explanation line that follows a CMake error.e8927db -
Add robustness sweeps with MuJoCo Warp
Chandra KiranUnverified signaturePOST /simulate/sweep runs a scene (from a run, a generation, or raw MJCF) as up to 256 copies at once, each with its own friction, object masses, joint noise and a push on the robot, and reports how many fell. MuJoCo Warp runs all worlds on the GPU; without CUDA the same randomization runs in plain MuJoCo, and results agree within a millimetre. Models using contact features Warp lacks (the Go2's 1 mm margins) are adapted and the report says so. The report plots push against friction for every world. CI runs both engines inside the worker image.a7dddb6 -
Add /code/check, more robots, and a real hold controller
Chandra KiranUnverified signatureROS 2 check: POST /code/check (or check: true on /code/generate) runs a generated package through the sandbox. The report shows build/launch/test results, errors, missing dependencies, the nodes and topics that came up, the logs, and the recorded bag in Foxglove. The sandbox now uses CycloneDDS with unicast discovery on loopback (containers have no loopback multicast), and our own shutdown no longer counts as a crash. The interface catalogue adds nav2_msgs, control_msgs and moveit_msgs. Robots: Unitree H1 and Go2 and the Franka Panda join the G1. 'hold' keeps the starting pose with a PD law on torque motors (H1, Go2) and targets on position servos; 'passive' now really switches actuation off. The H1 gets a balanced standing pose (it tips over from Menagerie's home pose); all four hold for 20 s.225dc91 -
Add a ROS 2 sandbox that builds, lints, tests and launches packages
Chandra KiranUnverified signatureworker/ros/Dockerfile (humble/jazzy) carries colcon, the ament linters, launch_testing, ros2_control, Nav2, MoveIt 2, xacro, robot_state_publisher, tf2 and rosbag2 MCAP. worker/ros_runner.py builds the package, runs the linters and tests, launches it for 10 s while recording every topic, and reports what came up or crashed. CI checks four sample packages (good Python, good C++, one that does not compile, one that crashes) in both distros. On Modal it runs without network or secrets.dbf4bd1 -
Track every backend job with its cost and stop at a monthly budget
Chandra KiranUnverified signatureRuns become one kind of job (sim, sweep, ros_check, review, export, isaac) in the same table, with the hardware it ran on and an estimated cost. New jobs are refused with 402 once the month's estimate reaches MONTHLY_CREDIT_LIMIT_USD (default $28). Sandboxed workers can return files inline; the API stores them in R2. GET /jobs and /jobs/{id} show any job, /report/{id} renders it with its follow-up jobs.1a36c6b -
Use GLM-5.3 via OpenRouter and run simulations on Modal (RunPod optional)
Chandra KiranUnverified signature- LLM settings are provider-neutral (LLM_API_KEY, LLM_BASE_URL, LLM_MODEL), defaulting to z-ai/glm-5.3 on OpenRouter; OpenCode gets the same endpoint as its only provider. - SIM_BACKEND selects modal (default) or runpod. worker/modal_app.py deploys the worker on a T4 (or CPU with MODAL_GPU=none) with a container cap and time limit. - Runs record backend + job_id; GPU time falls back to the worker's own timing on Modal. Existing run tables are migrated.da839c2
27 days ago
-
Keep free objects where the scene puts them when resetting to the robot keyframe
Chandra KiranUnverified signatureMuJoCo pads a robot keyframe with zeros for joints the scene adds, so every free body (boxes, balls) started at the world origin inside the robot and knocked the G1 over. The keyframe is now applied to the robot's own joints only, in both the validator and the worker.cccaf8b -
Fix scene validation breaking when a GL backend is configured
Chandra KiranUnverified signatureImporting worker.handler set MUJOCO_GL=egl for the whole process, and the validation subprocess inherited it; on a machine without EGL, importing mujoco then failed and every scene was reported invalid. Validation never renders, so it now runs without rendering settings, and the handler no longer modifies the environment (the worker image sets MUJOCO_GL itself). Also pass stdin to the CI smoke run so its script actually executes.fab4b5b -
Harden simulation runs: official Foxglove embed, WebM video, CI image build
Chandra KiranUnverified signature- Report page uses Foxglove's embedding library (@foxglove/embed, vendored) with the MCAP as a remote-file source; R2 CORS now allows embed.foxglove.dev; FOXGLOVE_ORG setting - Worker writes a VP9 WebM next to the H.264 MP4 so every browser plays the video; a rendering failure mid-run no longer loses the run - Pin onnxruntime below 1.29, whose Linux build sends Microsoft telemetry, and disable its telemetry events - CI: lint, tests, build the RunPod worker image and run a real job in it04ad412 -
Add GPU simulation runs: RunPod worker, R2 storage, report page
Chandra KiranUnverified signature- POST /simulate/run re-validates the scene, logs the call (tester, time) and submits a RunPod serverless job; GET /simulate/run/{id} for status; GET /simulate/report/{id} (signed link) shows the run summary, video and an embedded Foxglove replay of the MCAP - worker/: MuJoCo simulation with the robot holding its keyframe, Foxglove MCAP (/scene, /tf, /state), H.264 video via EGL with CPU fallback, upload to Cloudflare R2; Dockerfile for RunPod - Usage visibility without caps: runs table, burst warning in logs, review runs/usage commands - R2 setup CLI (CORS for Foxglove, credential check); README setup for R2, the RunPod endpoint and the spend alert5dbd0bf