Created · Engineering & integration

RoboSimStudio and Newton

RoboSimStudio’s scene API, interactive tools, and relationship to Newton, Isaac Lab, and USD-based applications.

Start with RSS ↓Go to the roadmap

1. RSS implementation and API

RoboSimStudio (RSS) combines a Python scene API with a browser-based interface for building and interacting with simulations. Researchers can construct a robot-and-cloth scene, manipulate objects, change physical parameters, and record simulation state without leaving the session. RSS already uses Newton as its primary physics backend. Integrating selected interaction and editing features would make these capabilities available to other Newton applications without requiring them to adopt RSS’s scene API or application structure.

RSS repository and release scope ↗ Scene construction ↗ Newton public API ↗

How RoboSimStudio is builtA Python scene is built by the RSS runtime into Newton. The browser connects through the studio package. The agent package accepts local commands and watches source files. Simulation changes converge on the owning simulation thread. Optional Genesis and SuperDex adapters are separate. Python sceneNamed robots, objects, clothScene → build() Browser · ViserSelect, drag, inspect, tuneHuman’s shared view Coding agent / CLIEdit source, run, inspectLocal socket commands robosimstudio/Scene & runtimeBuild, control, step, record robosimstudio_studio/Interactive sessionPanels, targets, viewer robosimstudio_agent/Live developmentWatch file, rebuild, recover One simulation threadSession tick · queued agent requests · build before swapping the scene Newton physicsModel + State + Control · collision · solvers Optional engine bridgesSuperDex / Genesis · experimental
Current implementation, simplified. Click a package to open its source. Arrows show construction and control flow; rendering updates also travel back to the browser. Open full-size diagram.
Key implementation modules
ModuleResponsibilityRelevance to Newton
Scene ↗ → compiler ↗ → Sim ↗Descriptions become a built model, solver pipeline, control and evolving state.The convenience layer should remain optional; existing Newton applications already own these objects.
StudioSession ↗ · panels ↗Creates the viewer, GUI and robot controls; coordinates the session tick and scene replacement.This is where a standalone application must be separated from reusable controls.
HandleSet ↗ · draggers ↗Handles maintain targets and apply forces to rigid bodies or manipulate selected particles.The interaction logic is a strong candidate for reuse independently of the studio’s panels.
parameter writers ↗ · material updates ↗Field metadata drives controls, array writes, solver notifications and rebuild decisions.Correct model changes are more important than the sliders themselves.
LiveServer ↗ · SimBus ↗The server queues commands for the simulation thread and builds edited scenes before replacing the active scene.Both browser controls and coding-agent tools need this command and rebuild behavior.
recorder ↗ · viewer specialization ↗Structured takes are distinct from browser appearance and offline video.Recording semantics and rendering hooks need separate contracts.

Scene construction and robot controls

Users define a robot, a work surface, and the objects in a scene in Python. The studio then provides controls for moving the robot’s end effector and operating its gripper. These built-in controls reduce the setup code needed to turn a simulation example into an interactive experiment.

Scene stores the scene specifications, and build() uses them to create a Newton-backed Sim. Robot metadata identifies the controlled joints and tool frames. The studio uses that metadata to configure inverse kinematics (IK), which converts end-effector targets into joint positions, and to build the gripper controls.

RSS allows users to define positions relative to the work surface, but it returns simulation state in world coordinates. Its scene API also stores only one robot specification: adding another replaces the first, although a registered two-arm robot can occupy that slot. These are RSS conventions, not restrictions that Newton should adopt.

RSS browser showing the robot, cloth and objects after a source edit
The supplied example builds a Panda, rigid objects, a 169-particle towel and a camera. Robot and scene setup remain editable Python.

Scene API ↗ Robot panels ↗ Newton controllers ↗ Complete scene example

Comparing RSS Scene with Newton ModelBuilder

Both APIs collect a scene description before constructing simulation data, but they return different objects. RSS stores named entities, poses relative to the workcell, and robot presets. Its compiler uses Newton builders and assigns groups of objects to solvers. These groups, called solver islands, can interact through a coupling mechanism. RSS wraps the resulting model, solver setup, controls, and cameras in a runnable Sim. By contrast, Newton’s ModelBuilder.finalize() returns a Model. The application chooses the solver, allocates state and control buffers, and runs the simulation loop.

ConcernRSSNewton / applicationIntegration implication
AuthoringScene.add(spec) stores specifications for named boxes, sheets, robots, and cameras. It returns named references for entities.ModelBuilder assembles bodies, joints, shapes, particles, and imported assets.RSS provides a higher-level authoring option. Newton users should be able to attach studio tools to an existing model without converting it into RSS specifications.
Construction resultScene.build() → compiler → CompiledScene → Sim. Warmup/reset runs by default.builder.finalize() → Model; model.state() and model.control() allocate runtime buffers.A model and a runnable application are distinct products. Do not make finalize open a viewer or choose an application loop.
Solver choice and schedulingArrangementSpec assigns entity types to physics backends and specifies coupling, control rate, and substeps.The application creates solvers and defines collision handling, the timestep, state-buffer swaps, and any multi-solver schedule.RSS simplifies setup, but its solver assignments and coupling defaults are application choices. An integration must let applications retain their existing solver configuration and stepping sequence.
Control and observationSim.step(action, mode=...) selects a controller; observations come from providers. Robot presets supply tool frames and gripper conventions.Control is simulation input data; examples or a learning framework interpret actions and assemble observations.A common runtime must not prescribe an RL action space, gripper range or observation dictionary.
Viewer ownershiprss.view(sim) creates a StudioSession that drives the loop. rss.viewer(sim) supports a caller-owned loop.An Example owns simulation resources; the example runner calls its step() and render().Provide an attach mode as well as standalone RSS. Existing Example or Lab code must remain the sole step owner.
Rebuild and identityBuilding the same Scene again rebinds its entity references to the new build. Two Sims from one Scene do not have independent references.Body/particle indices and state buffers belong to a particular finalized model; reconstruction invalidates consumers’ cached references.Record model generation, world and entity identity. Rebind panels, renderers, handles and agent requests together.
Task definitionTaskSpec adds instruction, evaluator, routine, variation and episode rules to scene fields. BuildRequest supplies the scene-only path.Newton models describe physics. Task semantics live in application code, Lab, Arena or another framework.Reuse scene construction without adopting RSS’s task representation or benchmark conventions.

Scene.build and reference lifetime ↗ · BuildRequest ↗ · Compiler entry point ↗ · Sim ↗ · ModelBuilder ↗ · Example runner ↗

Complete scene setup with cloth, solvers, and cameras

The example below defines a robot, cloth, a block, and two cameras, then builds the simulation and opens the studio. Inside build(), RSS creates Newton’s MuJoCo solver for the articulated robot and its vertex block descent (VBD) solver for the cloth and block. RSS’s default proxy coupling transfers interactions between those solver islands. The camera specifications define the views, and the camera panel creates a tiled renderer when needed. Setting share=False disables the public Viser tunnel.

import robosimstudio as rss
from robosimstudio_studio import StudioConfig

# GENERIC is an ArrangementSpec; backend names select solver factories.
physics = rss.replace(
    rss.GENERIC,
    control_hz=60, substeps=8,
    backends=(("articulated", rss.backend("mujoco")),
              ("*", rss.backend("vbd"))),
)
scene = rss.Scene(cell="bench_075", physics=physics, name="cloth-cameras")
scene.add(rss.robot("panda"))
scene.add(rss.sheet(name="towel", size=(0.32, 0.32), cells=(18, 18),
                    at=(-0.16, -0.16, 0.05)))
scene.add(rss.box(name="block", half=(0.035,) * 3, at=(0.02, 0.25, 0.06)))
# Camera poses use world coordinates; `at` above is relative to the bench.
scene.add(rss.CameraSpec(name="front", width=640, height=400,
                         eye=(1.3, -0.7, 1.2), look_at=(0.5, 0, 0.85)))
scene.add(rss.CameraSpec(name="overhead", width=640, height=400,
                         eye=(0.5, 0.01, 1.8), look_at=(0.5, 0, 0.8)))

if __name__ == "__main__":
    # build creates the Newton models, state/control, solver pipeline and warmup.
    sim = scene.build(control_mode="joint_position")
    print(sim.pipeline.program.summary())
    # Live camera panel owns its tiled renderer; the browser runs on Viser.
    rss.view(sim, panels="all", config=StudioConfig(live=True, port=8097), share=False)

The simulation contains 16 robot bodies in the MuJoCo island and one rigid body plus 361 cloth particles in the VBD island. Building it took about 21 seconds on the shared test machine. The configuration specifies 60 control steps per simulated second and eight physics substeps per control step, giving a physics timestep of 1/480 s. With live camera images enabled, the application ran at approximately 18–20 control steps per wall-clock second. These timings describe this scene on that host, not general RSS performance.

Run this example · Backend and coupling choices ↗ · Physics composition ↗ · Viewer entry points ↗ · Runtime probe

Persistent rigid-body and cloth handles

Users can select a cloth patch, create a manipulation handle, and move its target. The handle continues to hold the patch after they release the mouse, leaving them free to inspect the scene. RSS also supports rigid-body handles, multiple handles, linked movement, and explicit release. These controls help researchers prepare initial states or reproduce contact problems that would otherwise require repeated mouse input or a custom script.

The studio manages each handle’s target and its on-screen control, or gizmo. A rigid-body handle applies a damped force and torque toward the target. A particle handle selects nearby particles and stores their offsets relative to the handle. In spring mode, it adds forces before the solver runs. In pin mode, it sets particle positions and velocities after the solver runs. Fixed-size device buffers allow target updates without changing the GPU kernel’s launch dimensions.

Newton could reuse the persistent targets and particle selection to extend its existing rigid-body picking. The cloth lift shown below uses an external pin; it does not demonstrate a robot grasp or show that the robot can support the cloth after release.

A persistent RSS manipulation handle lifting a patch of simulated cloth
The target remains active between mouse actions. A kinematic pin and a force-based drag have different physical effects and must be labeled clearly.
Select body / particle patch→Store a target→Apply force or pin each step→Release explicitly

For scripted particle selection, disable the nearest-particle fallback and check the returned selection count and distance. A convenient mouse interaction should not silently turn an agent’s missed grasp into a successful attachment.

Handle lifecycle ↗ Rigid dragger ↗ Particle dragger ↗ Newton picking ↗

GUI model editing and recording

Users can select an object, inspect its settings, change a material or solver parameter, and observe the response. RSS separates physical settings from visual effects such as rendered cloth thickness, color, and fuzz. It can also record simulation actions and state in a structured recording, called a take, as well as export images and videos.

Newton could reuse the parameter-update logic and the rules for notifying solvers when a value changes. Material presets and the full editing interface can remain in RSS. The current studio still requires source edits for some changes to script-authored scenes, and it does not provide a complete editor with undo or general saving and reloading through Universal Scene Description (USD).

Metadata to controls ↗ Three update tiers ↗ Model writers ↗ Rebuild limitations ↗ Recording format ↗

Training data must distinguish robot actions from external assistance. In the 106-sample take, the cube rises about 18 cm while the recorded robot action barely changes because the user moves it with the mouse. A training-data exporter must record the external forces or pins and label assisted steps, or exclude those transitions. Take analysis · Analysis script.

Clicking a mesh selects an entity and opens its inspector. The inspector uses metadata to determine which parameters users can edit, their units and ranges, and how to apply changes. Cloth and rigid bodies therefore expose different controls. A separate Material panel provides presets and save and revert operations.

RSS cloth inspector showing generated material parameter controls
The cloth inspector generates controls from the entity’s editable parameters and field metadata.
  1. The browser queues parameter changes. A Viser callback records the requested value. On the simulation thread, SpecBinder.drain() creates an updated immutable specification and calls the appropriate parameter writer. The browser callback does not write physics state directly.
  2. Some edits update existing arrays. Cloth stretch and bend parameters update material arrays for the selected cloth’s triangles or edges. Later launches of a captured CUDA graph read those buffers. In the GUI test, changing log10 tri_ke from 4 to 4.3 changed the model value from 10,000 to 19,952.623 N/m without changing particle mass. The test confirmed the array update, but did not establish equivalence to a freshly built model or verify captured execution. Rigid-body, shape, and joint parameters use separate writers and solver notifications.
  3. Fields marked with a tilde require graph recapture. Soft-contact stiffness, damping, and friction are Python scalar values passed into GPU kernels. A CUDA graph records kernel launches for later reuse, including these scalar arguments. The application must capture the graph again to use changed scalar values; uncaptured execution reads the new values directly. These contact fields affect the entire model, unlike the material arrays for an individual cloth.
  4. Fields marked with an asterisk require a rebuild. Changes to density, geometry, or solver allocation can require new model and solver buffers. The interface lists these edits under “Pending rebuild.” For the tested Python-authored scene, “Apply & rebuild” instructed the user to edit the source script and did not apply the change. RSS also contains a task-backed reload path, but the public release withholds the task tier needed to validate it.
  5. Saving a preset does not save the whole scene. “Save as preset file” writes a material record. Camera pose edits remain local to the session. Neither operation saves the complete scene, solver, controller, cameras, manipulation handles, and task in a portable document.
RSS material controls with pending rebuild field
The Material panel marks density changes as requiring a rebuild.
RSS status says a hand-built scene must be rebuilt by editing its script
The rebuild command rejects the structural edit and directs the user to the scene’s source script.

A Newton editing interface should identify each field’s scope, validate the requested value, and notify the affected solver. If an edit requires reconstruction, the application must provide a way to rebuild the model and reconnect every component that uses it. Each edit should either succeed completely or leave the current model unchanged. RSS’s panel layout can remain separate from these rules.

The inspector and Material panel currently maintain separate working specifications. After the inspector changed a value in the test, the Material panel still displayed the old value. Shared readback from the active model and a regression test should prevent that disagreement. Coding agents also need structured results that distinguish an applied edit from one that requires recapture, requires reconstruction, or is unsupported.

Inspector ↗ · Widget metadata and queue ↗ · Model writers ↗ · Live / recapture / rebuild ↗ · Rebuild behavior ↗ · GUI edit probe

RSS: direct manipulation, tuning and recording 0:29 · 1–1.4× playback

A persistent handle lifts one cloth patch while the user inspects material controls, releases the cloth, and records a take. Playback speed varies as marked. The demonstration does not validate multiple simultaneous handles or an unassisted robot grasp.

Cloth manipulation with live camera images

A practitioner can arrange the cloth while checking whether two observation cameras can see the relevant fold or grasp point. RSS displays server-rendered RGB images inside Viser; selecting a camera, looking through it and changing its pose are part of the same session. A coding agent can use the same declared cameras to request observations, but benefits from explicit camera IDs and numerical state rather than the panel layout.

RSS: cloth handles and two camera views 0:10 · normal speed

A pin lifts a towel patch while the front and overhead camera images update. The user then switches to the overhead view and releases the pin. The cloth follows the target gradually because the pin limits movement during each physics substep.

RSS camera panel displaying front and overhead RGB renders of the manipulated cloth
The tiled renderer produces both camera images. These sensor views use a different rendering path from the main browser viewport.

PanelCamera uses the declared camera rig or creates a renderer through Sim.make_renderer(). It renders the current simulation state at a limited update rate and displays the images in Viser. “Look through” moves the browser camera to the selected camera’s pose. “Set from view” stores the current browser pose as a session-local override; a changed camera configuration causes the panel to rebuild its renderer. Available outputs include RGB, depth, and segmentation, depending on the backend.

The optional “World model” mode uses a separate rendering path. OVRTX renders an image from the browser camera’s pose, and Viser displays that image behind the interaction controls. This allows path-traced rendering without a browser-side path tracer. The demonstration covers tiled camera views, not the optional OVRTX integration. Cloth appearance settings in the browser do not automatically apply to sensor rendering.

Newton’s existing viewers and sensors could support the same camera selection, pose editing, and image display. Each image should identify its camera and simulation time, especially when rendering runs more slowly than the simulation. An integration should add only the missing public interfaces, rather than introduce a second renderer abstraction.

Camera panel and pose lifetime ↗ · OVRTX viewport path ↗ · Renderer factory ↗ · Demo source · Probe and rendering dimensions

Source editing in a running session

A researcher or coding agent can edit the scene file without closing the browser session. Commands can pause the simulation, run a specified number of steps, inspect its status, evaluate Python, and capture an image. If an edit fails, RSS keeps the previous scene available while the user corrects the source.

LiveServer watches the scene file, waits until edits stop, and builds a candidate scene. It replaces the active scene only after construction succeeds. SimBus queues local socket requests for the simulation thread to process between steps, so that thread remains responsible for changing simulation state. The process retains the browser connection and camera position during a rebuild.

In the live-session test, a command advanced exactly 12 steps, a syntax error left the old scene usable, and a valid edit loaded without changing the process or camera position. The session also returned an image from the tiled renderer. The warm rebuild took about 22.6 seconds on the shared test machine. These results establish the command and recovery behavior, but do not measure a productivity advantage over direct Python.

Live server ↗ Source loading ↗ Thread ownership ↗ Local command transport ↗ Probe results

RSS: recovery from an invalid scene edit 0:08 · shortened sequence

The session runs a fixed number of steps, rejects an invalid edit, and loads a corrected scene. The clip omits the rebuild wait of about 22.6 seconds. Live-session example · Sensor image.

Viser provides the browser interface. Its Python API supplies a 3D view, GUI controls, transform gizmos, click callbacks, and camera access. Researchers can interact with a remote GPU simulation without developing a separate web application. Newton already uses Viser, which provides a common foundation for reusable controls. The host application still owns simulation stepping, physical edits, and saving state; it must also distinguish the browser view from sensor observations. Viser API ↗.

Feature matrix: 17 capabilities

The table compares RSS capabilities with existing Newton functionality and identifies the proposed integration boundary for each.

17 capabilities
CapabilityRSS public implementationNewton baselineEngineering disposition
Browser visualization and controlsViser studio with inspection, transport, appearance, cameras, and app panels.Interactive ViewerViser provides pause/step/reset, example switching, GUI controls, scalar plots and images.Use Newton’s viewer primitives; do not import duplicate transport widgets. Newton viewer ↗
Robot end-effector gizmosIK and gripper controls wired from registered robot metadata.Transform gizmos and existing IK examples cover the underlying interaction; Newton also has an experimental controllers package.RSS adds packaging and defaults; reuse native IK/controller APIs. Arm panels ↗ Newton controllers ↗
Persistent rigid handlesMultiple slots, persistent targets, linked movement, release controls; body remains dynamic.Viewer force picking primarily provides transient mouse manipulation with per-layer interaction state.Evaluate a reusable interaction primitive with explicit lifetime and owner; keep app layout outside. Handle lifecycle ↗ Newton picking ↗
Cloth patch manipulationParticle-patch pins, multiple handles, named sets and optional hand attachment.The evaluated Newton picking path targets rigid bodies; it does not provide this persistent cloth-patch workflow.Strongest focused candidate. Separate hit selection, target UI, and solver-side constraint/force semantics. Draggers ↗
Live material / solver tuningMetadata-driven sliders, units, immediate/recapture/rebuild distinctions, preset files.Model arrays and solver notifications provide the foundations; there is no comparable general tuning application in the evaluated viewer.Upstream missing notifications or examples; retain material libraries and GUI policy in a companion. Parameter writers ↗
Scene constructionScene / Sim / Ref, named entities, work-surface frames, cells, robots, shapes, cloth and soft bodies.Overlaps ModelBuilder / Model / State / Control, importers, examples, and Isaac Lab’s scene API.Useful high-level facade; keep opt-in. It should not become Newton’s canonical object model. Scene guide ↗
Persistent coding-agent sessionFile watcher, guarded rebuild/swap, Unix-socket commands, eval, catalog, snapshot/reference comparison.The evaluated viewer does not supply this bundled persistent development session; Python provides individual operations.High practical value in a companion tool; typed commands would improve reliability. Agent server ↗
Teleoperation and force feedbackLeader-arm plumbing, calibration, gripper feedback and safety-related control logic in source.Newton controllers and Isaac teleoperation integrations cover adjacent responsibilities.Device adapters belong outside the physics core. No real hardware was tested here. Teleop implementation ↗
Take recordingRecorded actions, robot/object state, timestamps and optional privileged body/particle state.Viewer video, physical checkpoints and training datasets have different contracts. Lab and Arena have their own data workflows.Adapter boundary; annotate external interventions and define reset/action/observation semantics. Studio recording ↗
Offline video and camerasBrowser view, tiled sensor rendering, optional RTX path, state-buffer video rendering.Viewer and sensor/rendering facilities already exist. Image display does not define a training dataset.Borrow rendering APIs; avoid importing another sensor truth or camera ownership model. Studio video path ↗
Appearance / deformable presentationCloth visual thickness, shell/fuzz looks, finishes, lighting and procedural scenery.RSS specializes Newton’s viewer; the baseline also provides batching and material handling.Audit genuinely missing public rendering hooks; keep decorative assets and looks optional. Viewer specialization ↗
Rigid + deformable physicsComposes Newton MuJoCo, VBD, XPBD and other registered backends.Newton already supplies multiphysics primitives, deformables, cables, controllers and coupled-solver work.RSS’s ergonomic composition is distinct from new physics capability. Reuse existing solver contracts. Newton coupled solvers ↗
SuperDex / Genesis adaptersBoth are already present; optional foreign-engine soft-body/cloth paths, host-side coupling and feedback shaping.Optional cross-engine adapters are outside the viewer’s responsibility. Coupling needs separate numerical validation.Keep experimental and opt-in; establish numerical acceptance tests before considering any core solver work. Engine adapters ↗
Task suite, goals and evaluationTask-oriented types and seams exist, but benchmark-tier modules and runnable task suites are withheld from this release.Arena supplies scene/embodiment/task composition, completion semantics, variations and evaluation.Do not merge an uninspectable task runtime or commit Newton to a task DSL. Withheld components ↗
48-task galleryGallery includes unreleased capabilities; it is not a shipped executable benchmark suite.A public gallery cannot establish validated executable task coverage.Ask for reproducible released task artifacts before a task-level integration decision. Release scope ↗
Policy / dataset ecosystemPolicy integrations and dataset export are on the roadmap; raw takes already exist.Lab and Arena own training, evaluation and data-conversion workflows.Build explicit adapters to chosen formats; do not make a roadmap item a core dependency. RSS roadmap ↗
General scene editor / USD round tripSource-driven construction, interactive manipulation, import and preset pieces. No complete editor save/undo/round-trip contract established.Newton has USD import/schema primitives; Isaac Sim supplies a broader USD authoring application.Position RSS as a lightweight task/scene workbench, not a demonstrated substitute for full authoring. Rebuild behavior ↗

2. Ecosystem and users

Newton provides physics and simulation data, while learning frameworks and scene editors manage broader application workflows. RSS overlaps with several of these tools, but its clearest role is a lightweight interface for interactive experiments. It can complement a learning framework or a full scene editor without adding either as a Newton dependency.

Approximate ecosystem mapThree overlapping areas represent physics and simulation, interactive authoring and inspection, and training, tasks and evaluation. Newton is an engine and library. RSS is a lightweight workbench above physics. Genesis and SuperDex span several areas. Isaac Sim provides scene and sensor authoring, Isaac Lab training environments, and Isaac Lab Arena task composition and evaluation. Placement is illustrative, not feature coverage or compatibility. Physics & simulation Authoring & inspection Training, tasks & evaluation NewtonPhysics library + viewers RoboSimStudioInteractive workbench Isaac SimUSD, sensors, rendering GenesisSimulation platform SuperDexPhysics, Studio, Lab Isaac LabLearning environments Isaac Lab ArenaTask composition & evaluation
An intentionally approximate map of product emphasis. Blob size and overlap do not measure capability, maturity or compatibility. Projects can span all three areas. Open full-size diagram.
ProjectMain roleWhat this means for RSS + Newton
NewtonPhysics library, solver interfaces, model/state/control data, viewers and sensors.Keep this as the common engine boundary. RSS adds application workflows. Public API ↗ · Viewer ↗
GenesisA broader simulation platform with its own scene interface, physics and rendering.RSS already has an optional Genesis bridge in the reviewed source. That does not prove equivalent behavior across engines. RSS bridge ↗ · Genesis overview ↗
SuperDexA platform spanning a physics engine, robotics SDK, Studio authoring tools and Lab; Lab is described as an early preview.RSS’s optional bridge is already present. SuperDex Studio also overlaps with the authoring role. Preserve an optional boundary and validate coupling separately. RSS bridge ↗ · SuperDex components ↗
Isaac SimA larger USD-based simulation, asset and sensor-authoring application.The reviewed develop source includes Newton integration. RSS should exchange declared scene fields or attach through supported application hooks; it should not introduce a competing stage or simulation owner. Newton stage integration ↗
Isaac LabRobot-learning environments and an application-owned simulation lifecycle.The reviewed develop architecture separates physics, rendering and visualization and exposes its owned Newton data. RSS controls should borrow those resources and use Lab’s lifecycle/notification rules. Backend architecture ↗ · Native Newton access ↗
Isaac Lab ArenaComposition of scenes, embodiments and tasks, plus evaluation and environment generation.Keep goals, rewards, task predicates and episode semantics in Arena or another task layer. Its agentic generation pipeline is adjacent to RSS’s live editing loop. Environment builder ↗ · Agent generation ↗

The Isaac comparison describes the source interfaces in the recorded revisions of Lab and Sim’s develop branches and Arena’s main branch. Runtime compatibility with these applications remains untested. The optional Genesis and SuperDex bridges also require separate tests of numerical behavior; their presence in the source does not establish equivalence between engines.

Robotics practitioner
Setting up and debugging manipulation experiments

A researcher can arrange a cloth, perturb a grasp, inspect the result, and tune a parameter while keeping the scene in view. Persistent handles help create initial states that would be tedious to script.

These features suit small manipulation experiments. The surrounding application still needs to manage large-scale training, asset production, and dataset quality.

Coding agent
Inspecting and changing a running simulation

An agent needs named entities, numerical state, commands that run a specified number of steps, and recovery from failed edits. It can change Python directly and request images when appearance matters, without operating the 3D interface through mouse clicks.

RSS exposes many of these operations. Structured command results, explicit coordinate frames, detection of references to replaced objects, and repeatable batch evaluations would make them more reliable. A researcher can use the same session to inspect the agent’s work.

RSS does not implement a Model Context Protocol (MCP) server in the reviewed release. Its agent package uses local Unix-socket commands and Python evaluation rather than MCP tool discovery and calls. An adapter could expose these operations to MCP clients, but it would still need explicit rules for who controls the simulation, how reset works, and how commands report failures. Transport source ↗ · Available commands ↗ · MCP tool protocol ↗.

The ongoing Newton live MCP study ↗ explores a closely related approach: host a Newton example persistently, execute against it, and rebuild edited source. Its results suggest that benefits depend on the workload and that agents often prefer numerical evaluation to rendered images. That study is experimental and does not benchmark RSS. The engineering opportunity is to share lifecycle and execution machinery while allowing both a Viser front end and an MCP client.

Human controls and coding-agent commands should use the same Newton session, with the host application retaining control of its lifecycle. Task definitions and data exporters should remain in adapters so BEHAVIOR-style tasks, Isaac Lab, Arena, and other applications can retain their own conventions. RSS’s public task tier is incomplete, so its gallery and planned integrations do not provide a sufficient basis for choosing Newton’s core API. Public task boundary ↗ · RSS roadmap ↗.

3. Integration with Newton

The choice is how much software and responsibility Newton should absorb. A companion package can deliver the complete RSS workflow, while focused contributions improve Newton for every application that needs similar interactions.

The Newton comparison includes the interactive ViewerViser implementation in PR #3850 ↗, tested at revision 8bfd16eb8941.

Merge RSS wholesale into Newton

This imports a second scene facade, application loop, presets, recording conventions, device integrations and optional engine bridges alongside the physics library.

Users gain an included studio, but the core inherits unrelated dependencies, support expectations and overlapping APIs. The useful workflow does not require this coupling.

Newton’s interactive viewer 0:09 · 1.2–1.4× playback

The viewer supports IK target movement, pause and step controls, and collision inspection. RSS builds on these capabilities with persistent manipulation handles and scene editing. Playback runs at 1.2–1.4× normal speed.

Application structure: RSS, Example classes and USD

RSS, Newton examples, and ovnewton all need to construct simulations and expose them to tools. They organize those responsibilities differently. RSS manages scene loading, solver setup, stepping, reset, GUI callbacks, and recording. Newton’s Example convention defines a common simulation loop, while ovnewton connects USD scenes to Newton models. A shared application interface could let studio controls and coding agents work with any of these construction paths.

Existing mechanismWhat it suppliesWhat it does not establish
Newton Example conventionA Python object with viewer, step() and render(); optional gui(ui) and test hooks. The runner handles viewer transport and example switching.A portable scene/solver document, a general model-replacement protocol, or a task schema. Reset in the interactive browser reconstructs the example; it should not be assumed equivalent to every application’s own reset method.
RSS Scene / SimA scene recipe plus solver arrangement, controller setup, observation providers, reset/step/close and studio integration. compose and pipeline let callers change physics assembly or the executor.A universal replacement for existing Newton loops. Its control assumptions, entity metadata and solver scheduling need adapters when the host already owns a model.
ovnewton internal main, 6 OctoberUSD → ovstage → add_ovstage(builder, stage). The caller registers solver attributes, imports, performs preparation such as VBD coloring, finalizes, then attaches a stage binding. The example selects XPBD, MuJoCo or VBD. Limited surface-cloth import is present.Automatic construction of an entire solver program from USD. The example’s solver factory, solver options and step loop are still Python application code. Its temporary VBD contact override explicitly anticipates more solver-specific PhysicsScene settings.
ovnewton multiple-scene branchStageBinding.scenes maps PhysicsScene paths to per-scene bindings/models. Ownership follows USD simulationOwner. The application allocates a solver, state/control and collision pipeline per selected scene.RSS-style interaction between solver islands. These are independent simulations; cross-scene joints are rejected and cross-scene objects do not contact each other.
Newton USD scene attributesThe schema resolver reads timestep-rate and maximum-iteration attributes, plus gravity and per-object physics properties. The USD importer returns physics_dt and max_solver_iterations metadata for the application to consume.A complete application configuration: selecting several solver islands, their coupling/order, control rate, controllers, reset policy, cameras and arbitrary task evaluation requires additional semantics.

Example runner and reconstruction ↗ · RSS assembly hooks ↗ · ovnewton main: import, finalize, create solver ↗ · Multiple-scene application loop ↗ · StageBinding implementation ↗ · Isaac Sim solver construction ↗ · Newton scene attributes ↗ · Returned simulation settings ↗

The ovnewton comparison covers internal main revision 3e6576c2e4dc and multiple-scene revision 1877c4902c98 (ovnewton #209 ↗). The links require repository access. These source-level findings do not establish runtime compatibility; the older public mirror also lacks these capabilities.

RSS and ovnewton both organize scene construction, but their scene divisions have different physical meanings. RSS’s MuJoCo and VBD islands exchange motion and contact effects through a coupler. In ovnewton, separate PhysicsScenes produce independent models. Placing an RSS robot and its cloth in different USD PhysicsScenes would remove their interaction unless the application explicitly coupled them. A common application interface must distinguish independent simulations from solver components that interact within one simulation.

Proposed convergence of Python and USD construction at an application-owned Newton runtimePython constructionModelBuilder / optional RSS recipeUSD constructionNewton importer / ovnewton adapterExisting applicationBorrow Lab or Example resourcesOne application owns model, states, control and solver(s)step / render · reset or rebuild · generation · edit notificationsSolver recipe and lifecycle contract: proposed work, not a new API todayRSS panels / ViserAgent commands / MCPTests / recording
Proposed common point: the application’s owned runtime. Python and USD remain valid construction paths; tools attach after construction. This does not require a second Scene graph in Newton. Open full-size diagram.

The existing Example convention provides a practical starting point. Keep its step() and render() methods, and add only the information tools need: access to the current model and state, a safe point for submitting edits between steps, reset and rebuild operations, and notification when references become invalid. Optional setup and close hooks, together with explicit viewer attachment, may be sufficient. Examples should not need to inherit RSS’s Sim, and Isaac Lab environments should retain their existing runner.

Newton and ovnewton should use a consistent description of solver configuration, separate from runtime buffers. That description needs solver types and options, timesteps and substeps, collision handling, and the order of coupled operations. It should define how explicit Python or command-line settings override USD defaults and reject unsupported combinations. Both construction paths should use Newton’s interpretation of physical materials and joints. Preserving the native USD/ovstage path also avoids losing visual materials or stage state during conversion to RSS specifications.

RSS already separates scene construction from task evaluation: BuildRequest and TaskSpec both implement the compiler’s SceneRequest protocol. The compiler uses their scene-construction fields, while task instructions, evaluators, scripted routines, episode variations, action conventions, and completion rules belong to the task layer. Newton should preserve this separation. Adopting the whole TaskSpec would introduce benchmark conventions into the engine API and overlap with Isaac Lab and Arena.

Validation should begin with the same small rigid-body scene built through Python and USD. Compare model properties, solver selection, timing, initial state, and reset behavior, then attach the same panel and bounded-step commands to both. Test rejected edits and successful rebuilds, including references to the old model, state-buffer swaps, and renderer updates. Repeat these checks in an existing Newton example and an Isaac Lab-owned runtime.

A subsequent cloth comparison should stay within ovnewton’s supported subset: an identity world transform, constant thickness, density-derived mass, and supported stretch and bend parameters. The two construction paths must agree on the mesh, mass, and material values before they can be considered equivalent for that case. RSS supports additional cloth fields that this comparison would not cover.

Shared scene request protocol ↗ · TaskSpec fields ↗ · Control / observation lifecycle ↗ · Current ovnewton cloth limits ↗ · Multiple-scene ownership and restrictions ↗ · Related USD preservation / import study ↗ · Lab runtime ownership ↗

Component integration details

The table separates reusable Newton engine, viewer, and application interfaces from features that should remain in an optional RSS package. The proposed Newton changes still need implementation and validation. Screenshots enlarge when selected.

RSS component and current behaviorWhat Newton would needRecommended home / concrete check
Persistent rigid and cloth handles

A manipulation handle continues to hold a body or particle patch after the user releases the mouse. Rigid handles apply a damped force and torque; cloth handles use either spring forces or kinematic pins.

Cloth patch lifted by a persistent gizmo, with two live camera imagesExternal pin; the robot is not holding the towel. ↗

Dragger physics ↗ · Handle lifetime ↗

Extend existing picking with reusable particle-patch selection and persistent targets. Define coordinate frame, world, selected indices, force/pin mode and release behavior. Apply targets at the correct point before or after solving; widgets should submit commands rather than write state from callbacks. Newton interaction primitives; RSS controls.

Implement only behavior also useful in a native Example. Check two independent patches, release/reset/disconnect, and rejection of targets from a replaced model. Keep robot and task assumptions out of the primitive.

Viewer extension

RSS subclasses the Viser viewer to render its cloth appearance and adds selection, gizmos and panels. It also reaches into private viewer state.

RSS viewer subclass ↗ · Public Viser access ↗

Use the existing ViewerViser.server for controls. Inventory the remaining overrides and private caches, then add narrowly scoped hooks for any missing model-replacement, rendering or cleanup operations. Establish when a control may submit work to the application’s step loop. Small hooks in Newton’s viewer; studio layout and styling in RSS.

The first check is a working port through public interfaces, including repeated model replacement with no stale meshes or callbacks. A new general plugin framework is not a prerequisite.

Parameter tuning

Metadata generates the inspector’s sliders and units. Edits either update arrays, require graph recapture, or wait for a model rebuild; material presets add save/revert controls.

Material panel showing areal_density pending rebuildPending rebuild is different from an applied edit. ↗

Model writers ↗ · Update tiers ↗

Identify whether each edit affects a selected object or the whole model, and whether it requires an array update, solver notification, graph recapture, or reconstruction. Return whether the edit was applied, remains pending, or was rejected. After a rebuild, reconnect state, controls, solvers, renderers, and selections to the new model. Values shown in the interface must match the active model. Newton change contracts and examples; RSS inspector/presets.

Compare an edited model with a fresh build at the same settings, including captured execution. Test the observed inspector/Material-panel disagreement. Hand-written scenes need an explicit rebuild recipe before the GUI can promise structural edits.

Live scene and agent host

A file watcher builds candidate scenes, retains the previous scene after an invalid edit, and accepts local commands for stepping, inspection and snapshots.

LiveServer ↗ · Simulation-thread queue ↗

Let tools attach to an existing Example or application-owned runtime. Define bounded stepping, reset versus rebuild, current-state access and model-generation checks. Use one command queue and one simulation owner. Typed results should expose failures and pending edits to a CLI or MCP adapter. Keep the host in the companion package initially.

Move lifecycle hooks into Newton only after another application can reuse them. Demonstrate failed-edit recovery and successful reconstruction in a native Newton application without requiring RSS Scene. Coordinate with the MCP work; the RSS command server does not itself implement MCP.

Scene recipes, robot presets and appearance

Scene combines named assets, workcell poses, robot tool/gripper metadata and solver arrangement; build() returns a runnable Sim. Visual presets add browser appearance.

Scene recipe ↗ · Construction inputs ↗

Reuse ModelBuilder/importers and the Example lifecycle. Coordinate solver configuration with ovnewton’s construction path, keeping authored settings separate from runtime buffers. Define which identities, units and fields survive save/load; avoid a second mandatory scene graph or task vocabulary. RSS/asset packages for authoring convenience.

A small shared application structure may belong in Newton once Python and USD consumers need it. First compare the same scene’s model, solver settings and reset through both paths. Browser appearance is not automatically a physical or sensor material.

Camera views and observations

The studio manages camera poses and shows tiled or optional RTX renders inside Viser. “Look through” moves the browser view; pose edits are session-local.

RSS camera panel with front and overhead rendered imagesRendered camera images, separate from the browser view. ↗

Camera panel ↗ · Optional RTX viewport ↗

Connect the workflow to existing viewer and sensor facilities. Pass camera identity, pose/frame, resolution and simulation timestamp with each image. Distinguish an edited preview rig from task observations, and recreate or rebind camera resources when their model changes. Camera editor in RSS; public image/camera hooks in Newton only where missing.

Check that a pose edit changes the intended view, reset restores declared poses, and snapshots identify the state they depict. Validate inside an application that already owns its renderer before adding another renderer abstraction.

Recording and task data

RSS records actions and simulation state in structured takes; image/video export is a separate operation. A take can include motion caused by human pins or forces.

Recorder ↗ · Recorded-take inspection

Expose consistent step/state access and intervention events. Specify whether actions, observations and images refer to before or after each step; identify resets and model changes. Record external assistance so it cannot be mistaken for behavior produced by the robot action alone. Companion recorder and dataset adapters.

Keep rewards, goals, BEHAVIOR predicates and Lab/Arena episode semantics above Newton. First replay or inspect a take containing a pin and a reset; verify time alignment and assistance labels before calling an export policy-training data.

Teleoperation and foreign-engine bridges

Optional adapters turn device inputs into robot commands or connect cloth/soft-body simulation to Genesis and SuperDex. These have different maintenance and validation needs.

Coupling feedback ↗

Use explicit controller commands and define which client owns each device’s controls. For coupling to another engine, specify coordinate frames, timesteps, exchanged contact data, and any modification or limiting of reaction forces. Keep these dependencies optional. Capping a feedback force may help stability, but does not establish physically accurate coupling. Separate device/engine packages.

Device disconnect must release its controls. Engine bridges need impulse/contact and timestep-refinement checks. Neither should be required to install Newton or use the RSS tools on a Newton-only scene.

The native Newton panel example demonstrates part of the proposed interface. It accesses the public Viser server, queues a button command for the simulation thread, and rejects commands that refer to an old model generation. Its CPU, CUDA, and browser checks passed. It does not constitute a complete RSS port or a stable plugin API. CPU log · CUDA log · Browser log.

RSS and a native Newton example should both validate the shared interaction features. An Isaac Lab adapter should then use those features on Lab’s existing Newton model without creating a second model, simulation loop, or reset policy. Lab already exposes its model, state, control, and change notifications for external use; the adapter should follow those ownership and update rules. Lab ownership and mutation rules ↗.

4. Recommendations and next steps

Newton should integrate reusable interaction and editing features, starting with persistent manipulation handles and safe parameter updates. These features should work in ordinary Newton examples and through Python, allowing RSS to use the same implementation. Updating RSS’s Newton dependency remains routine maintenance rather than a separate integration milestone.

The first two contributions would let users arrange a scene and tune its physics without writing custom controls for each example. Both require a way to apply commands safely on the simulation thread. Shared application conventions, camera previews, and recording can follow once those interfaces are clear; the initial work does not require a new application framework.

1
First contribution · Newton interaction utilities and viewer controls

Persistent rigid-body and cloth manipulation

Users should be able to select two cloth corners, move them independently, leave them held while inspecting the scene, and then release them. Python scripts should support the same operations without a browser.

Extend Newton’s existing rigid-body picking with particle-patch selection, multiple persistent targets, and explicit operations to create, update, and release each handle. Reuse Newton’s force-dragging behavior and adapt RSS’s particle-selection, spring, and pin mechanisms. Keep the target data and physical operations independent of Viser, with viewer controls that call the same interface as Python scripts.

Each target should identify its coordinate frame, world, selected indices, and model generation—a version identifier that changes when the application replaces the model. Apply forces before solving and enforce kinematic pins afterward. Use fixed-capacity target buffers so moving a handle does not require graph recapture. The application’s step loop must process commands. Reset and model replacement must invalidate old targets, and a disconnected client must release its controls.

Acceptance criteria. A native Newton example and a headless test can both manipulate two cloth patches and a rigid body. Releasing a handle leaves no residual pin or force, and stale commands cannot affect a rebuilt model. Tests cover CPU, CUDA, and captured execution. Where batching is supported, manipulating one world leaves the others unchanged.

RSS particle mechanics ↗ · Newton picking to extend ↗ · Existing queued-command prototype

2
Next contribution · Newton parameter updates and a small inspector example

Safe inspection and editing of simulation parameters

When users change a cloth material or joint gain, the interface should identify the affected object, show whether the new value is active, and explain whether reconstruction is necessary. Coding agents should receive the same information in a structured result.

Document an editing path for a small set of supported fields, starting with VBD cloth material values and joint gains for a specified solver. Reuse ModelFlags and SolverBase.notify_model_changed(), and add field-level validation, explicit scope, consistent readback, and coordination of solver refresh, graph recapture, and rebuild. The required action depends on both the field and the solver; RSS’s three edit categories provide a starting point, not a universal classification.

Validate each request before writing to the model. Return whether the edit was applied, remains pending, or was rejected, together with the effective value and any required action. Structural edits need an application-provided rebuild callback; without one, the interface should report them as unsupported. Panels and agents should read values from the active model so they cannot silently disagree. A minimal Newton inspector can use existing UI callbacks while RSS keeps its richer panels and preset library.

Acceptance criteria. Each supported edit produces behavior that matches a fresh build at the same settings within stated tolerances, including captured execution. Invalid edits leave the model unchanged. The interface labels model-wide fields clearly, and GUI and Python readbacks agree. These checks address the disagreement between RSS’s inspector and Material panel.

RSS edit tiers and scope ↗ · Existing solver change notification ↗ · Observed edit and readback behavior

3
Shared design work · Newton examples, ovnewton and application owners

Application lifecycle and solver configuration

The same editing tools should attach to a Python-built Newton example or a USD-loaded scene without requiring rss.Scene or transferring control of the simulation loop to the studio.

Use the first two contributions to establish an optional application convention. Tools need access to the current model, state, control, and solver; a safe point for processing commands; reset and rebuild callbacks; and notification when the application replaces resources. State access must follow buffer swaps, while model-generation identifiers allow tools to reject stale selections, queued commands, and camera bindings. Start with small helpers around the existing Example convention and require a second application to use them before introducing a public application class.

Define solver configuration separately from running resources, in coordination with ovnewton: solver choice and supported options, timestep/substeps and collision policy. Python and USD construction should use the same interpretation and explicit override precedence. Start with one solver per simulation; add coupled solver schedules only when their ownership and stepping semantics are specified. Reuse existing USD fields and define schemas/import coverage for new authored physics settings. Keep task goals, rewards, controllers and benchmark vocabulary outside this contract.

Acceptance criteria. Equivalent Python- and USD-built rigid-body scenes agree on model properties, solver settings, initial state, and reset behavior, and both accept the same tools. Failed rebuilds leave the application usable; successful rebuilds reconnect every dependent component. An Isaac Lab adapter uses Lab’s existing runtime without creating a second loop. The next test covers ovnewton’s supported cloth subset.

Newton example runner ↗ · RSS, USD and ovnewton API comparison · Lab ownership rules ↗

4
Follow-on · Newton sensor/viewer hooks; optional recorder and studio panels

Camera previews and recording of interventions

Add a small Newton example that displays images from existing camera sensors in ViewerViser. Introduce public hooks for camera updates and model replacement only where existing interfaces are insufficient. Each observation should identify its camera, world, coordinate frame, simulation step, and time. Use SensorTiledCamera or the application’s renderer, and keep browser views distinct from sensor observations.

Expose handle create/move/release, parameter edits and reset/model-change events alongside step/state access. An optional recorder can then identify externally assisted motion and align it with actions and images. RSS can contribute its camera panel and take recorder; dataset formats and task semantics remain adapters above Newton. This work can proceed once the lifecycle and event boundaries are agreed.

Acceptance criteria. The cloth example displays two synchronized camera images. A scripted pose edit changes the intended camera, and reset or rebuild restores or explicitly replaces the camera rig. A recorded take identifies every pin and reset and states whether each observation precedes or follows its associated action.

Existing Newton tiled sensor ↗ · RSS camera panel ↗ · Recorded-take inspection

The initial work should produce two focused Newton contributions: persistent manipulation with a native cloth example, and validated parameter edits with a minimal inspector. RSS can provide a reference implementation and serve as the first external user. In parallel, ovnewton and Isaac Lab maintainers should review the application hooks, using these examples to determine the minimum shared API. Each contribution should deliver a working Newton capability with regression tests.

RSS’s scene-authoring conveniences, presets, file watcher, richer GUI, task definitions, dataset exporters, and Genesis/SuperDex bridges should remain optional. A companion repository can maintain them independently; whether that repository belongs under the Newton organization is a separate ownership decision. This division gives researchers and coding agents reusable tools without making Newton depend on a particular scene or task framework.

Implementation checks and current evidence
CheckRequired experimentExisting evidence / remaining gap
Interaction lifecycleDrag, disconnect, reset/rebuild, reconnect, then send an old callback.Native prototype rejects stale commands. Reusable Newton handle and rebuild APIs remain proposed work.
Cloth manipulationManipulate two independent patches, link their motion, and vary the release order. Test a robot grasp after releasing every pin.The demonstration covers one persistent patch. Multiple-patch behavior and unassisted grasping still need validation.
Parameter correctnessCompare an edited model with an equivalent fresh build; check solver refresh, recapture and all affected state buffers.Live material writes and pending rebuild behavior were probed. Fresh-build equivalence and captured execution were not measured.
Agent authoringRun a fixed number of steps, reject an invalid edit, load a valid edit, preserve the camera, and return structured status and an image.The live-session test passed the stepping, recovery, reload, and image checks. A shared command-result schema remains proposed work.
Multiple worldsSelect one of N worlds, reset selected worlds, and verify all others remain unchanged.Not covered. Required before claiming support for batched applications.
Cameras and recordingEdit/reset the camera rig; identify image step/time, pins, model changes and observation/action timing.Two tiled camera views and a raw take were captured. Synchronized intervention-aware recording was not established.
PerformanceCold/warm startup, command latency, rebuild latency, frame latency, throughput with UI on/off.Observed timings only on a shared GPU; no controlled comparative benchmark.
Application and solver configurationCompare Python and USD construction, reset and failed/successful rebuild; attach to a Lab-owned runtime.Source-level overlap was analyzed. Equivalent runtime behavior and the Lab adapter were not executed.
Evidence, runnable examples and limitations

The tests cover RSS scene construction, interactive controls, live editing, camera images, and a native Newton viewer example. They establish specific behavior in those configurations, not general physical accuracy or compatibility across applications. The Isaac and ovnewton comparisons describe source-level interfaces; their runtime integration remains untested.

908RSS fast-tier tests · OK, 19 skipped
Original log
165RSS medium-tier tests · OK, 14 skipped
Original log
25Newton Viser tests · passed
Original log

Suite totals are those reported by the runners, including skipped tests. RSS’s fast suite includes structural checks and stubs; these numbers are not counts of validated physical phenomena.

ExampleWhat it establishesEvidence
rss_scene.pyPanda, rigid objects, VBD cloth and camera; the scene used for the RSS recordings.Session log · Original interaction recording
test_study_contracts.pySix characterization probes: coordinate frames, settling/reset, duplicate names, robot slot, unavailable task tier and capped feedback.Newton 1.6.0 run · 1.6.1 rerun
probe_live_session.pyThe step counter advances from 815 to 827. The session retains the old scene after an invalid edit, loads a corrected scene without restarting, preserves the camera, and returns an image from the tiled renderer.Results · Full session recording
newton_public_ui.pyPublic viewer access, queued mutation and stale-command rejection, exercised on CPU and CUDA and through the browser.CPU · CUDA · Browser
inspect_recorded_take.pyRead-only analysis of the 106-sample take: timestamps, action range, cube motion and retained array shapes.Inspection · Schema · Audit
rss_cloth_cameras.pyThe example assigns objects to MuJoCo and VBD, displays two 640×400 camera views, and supports cloth pinning and release. Tests confirm a live material edit and rejection of an unsupported structural rebuild.Results · Session log · Standalone launch

Startup latency and an unresolved viewer error. The first mixed-scene build took about 280 seconds, and first-use IK compilation blocked simulation-thread commands for about 75 seconds. These shared-host timings do not establish typical latency. Toggling a Newton joint overlay also produced NaN bounding-sphere errors. The test did not isolate the cause against the base revision, so it does not establish a regression. IK trace · Overlay probe.

Runtime coverage. The RSS studio tests used its resolved Newton dependencies, and six characterization tests also ran on Newton 1.6.1. The native viewer prototype used the interactive Newton revision identified above. These checks do not certify the entire RSS application on that development revision. They also do not cover Isaac applications, physical teleoperation devices, the optional RTX renderer, or other physics engines. The public release does not provide the complete task benchmark, executable 48-task suite, or policy exporter needed to validate those capabilities.

Raw data: Recorded steps · Body and particle state · Exact runtime environments · Audited source revisions · Branch audit · Original freshness check.

Full session recordings: RSS interaction · Live scene editing · Newton viewer.

Reproduction instructions · File hashes · Report, examples, and data.

Implementation sources and related work

Implementation links identify the reviewed source revisions. Product documentation and the related MCP study provide additional context for the ecosystem comparison.

Implementation source index · Supporting sources · Additional implementation sources.

RSS screenshot

Open original image ↗