Core Technology

Three Core Technical Pillars

Test environments, robots, and adaptation all run on the same scorer. Environment · Robot · Adaptation

Test Environment

Recreate your site or generate one automatically

Recreate your site from maps or drawings, or generate a test environment automatically. Adverse conditions such as rain, fog, night, and radio jamming are applied through settings.

  • Physics-based environment simulation (PhysX)
  • OpenSCENARIO 2-family scenarios
  • Automatic environment generation · condition variation

Robot Model

One configuration file per robot

Register a robot by declaring its body specifications, motion limits, end effector, and sensor positions. The specifications are checked against the manufacturer's confirmed values.

  • Sensor noise · degradation · fault injection
  • Joint · contact dynamics
  • ROS 2 (Jazzy) integration

Adaptation Loop

Scoring results feed the next round of training

Train in simulation, score with physics, find the causes of failure, and train again. For real robots, we are still at the stage of collecting data that compares simulation with reality.

  • Test records → training data (LeRobot · RLDS)
  • Additional training · reinforcement learning (Isaac Lab)
  • Failure causes → next training-data design

Platform Capabilities

Key traits of the scoring approach

Same criteria
Many robots, one scorer
Different robots are tested with the same scorer on the same items
Zero code
New robot = one configuration file
New robots are accepted without changing the scoring program
Physics-based
Sensors · environment
Sensors and environments are simulated physically, and test conditions are applied by declaration
Not measured ≠ pass
What was not measured is not a pass
Measurement items from reference standards are used as test items (not a conformity certification)
Architecture

5-layer architecture

Environment · robot · AI · scoring · reporting — the structure stays the same even when the robot and task change

1
Environment
Maps · drawings · automatic generation · adverse-condition settings
2
Robot
One configuration file · sensor models
3
AI
Robot AI models · external AI modules · motion planning
4
Scoring
Per-item physical scoring · three-state verdict · scorer self-check
5
Reporting
Verdict reasons · measurement scope · limits · video · trajectories

Register a robot with one configuration file

Adding a new robot leaves the scoring program and scenarios unchanged. Robots from different manufacturers are scored on the same items.

Franka Panda
Franka Panda
UR10 + Robotiq
UR10 + Robotiq
Kinova Gen3 + Robotiq
Kinova Gen3 + Robotiq
Techman TM12 + Robotiq
Techman TM12 + Robotiq
AgileX PiPER
AgileX PiPER

Same task, same scorer, same test environment (simulation screens)

Body specs
Links · joints · mass
Motion limits
Joint ranges · velocity · force
End effector
Gripper · suction
Sensor placement
Camera · LiDAR · IMU
Same scorer · same items
No changes to the scoring program · scenarios

“No program changes” doesn't mean “no work” — robot data preparation and per-robot calibration are still required. Showing a robot's name does not imply a partnership.

Scenario authoring and test runs

Write the task, conditions, and pass criteria in a scenario language, and the physics run and multi-angle video are recorded in one go.

scenario manip_insert_generic:  do serial:    manip_grasp_gen(…)      # ① compute grasp pose    manip_pick(…)           # ② pick    manip_place(x: 1.0, …)  # ③ insert into hole    assert_manip_strict(    # ④ score      use_case: "insert")

Example robot-arm insertion scenario — 4 lines of actions, 1 line of scoring

Robot-arm insertion task run — the same moment recorded by three cameras (wide · close · top) (simulation)

Robot-arm insertion task run — the same moment recorded by three cameras (wide · close · top) (simulation)

Authoring — wizard · visual editor · natural-language draft→Human review→Run→Automatic scoring

Three possible results: pass, fail, not measured

Items that couldn't be measured are not counted as a pass. Even when the task succeeds, the final verdict can be a fail.

Pass
A pass is given only when every required condition has been confirmed by measurement (based on robot-arm pick-and-place tests).
Fail
Measurement confirmed that a condition was not met.
Not measured
The measurement itself could not be made (no stimulus · unit mismatch · no means of measurement). These items are counted separately, neither as a pass nor as a fail.
  • ·If a required item is not measured, it fails with the reason “measurement absent” (PAVS-VDT-01 v1.2).
  • ·If none of the items is measured, the pass rate is shown as “not computable” rather than 0% or 100%.
  • ·Final-result handling for tests in which the program marks its own “success” is in development (PAVS-VDT-02).
View the PAVS open specification →
Technology

Technologies We Use

We use open formats for physics execution, sensors, and robot software integration

Visual Engine

RTX rendering and visualization

  • Ray-traced rendering (RTX)
  • Environment lighting
  • Physically based materials

Physics Engine

PhysX-based physics execution and robot dynamics

  • Rigid-body dynamics
  • Contact mechanics
  • Friction models

Sensor Suite

Camera · LiDAR · IMU sensor models

  • Noise · degradation injection
  • Camera lens distortion
  • Sensor fault injection

ROS 2

ROS 2 (Jazzy) · Nav2 integration

  • Topics · services · actions
  • Nav2 navigation stack
  • Scenario-language action integration

Integration

🤖ROS 2 (Jazzy)
🐍Python
🔗REST API
🧊OpenUSD
Open Formats

Open Formats

Open formats keep us compatible with other tools — the goal is portability

OpenUSD

AOUSD

Scene · 3D asset format — hierarchical composition of large environments

  • Hierarchical composition
  • Deferred loading (Payload)
  • Variant Sets

OpenSCENARIO 2 family

ASAM

Scenario authoring language — defines tasks · conditions · pass criteria

  • Declarative scenarios
  • Condition variation
  • Scoring-item declaration

ROS 2

Open Robotics

Robot software integration

  • Jazzy
  • Nav2
  • Topics · services · actions

MuJoCo

Google DeepMind

Cross-check with another physics engine

  • Same robot · same motion compared
  • Differences between engines checked
Reference Standards

Reference-Standard Measurement Items

We use the measurement items of standards as our test items. The level of support in each area (implemented, partial, or reference only) is shown alongside.

ISO 9283
Robot-arm performance · partial
Measurement items reproduced in simulation · not an official test
ISO 10218-1·-2
Collaboration · safety · partial
Contact items registered per body region
ISO/TS 15066
Collaborative-robot contact force · reference only
Force · pressure verdict in development
ISO 3691-4
Mobile robots · partial
Collision · stop · distance items · speed-measurement basis still being supplemented
ISO 13482
Service-robot safety · reference only
Measurement items for reference only
ISO 18646
Service-robot performance · reference only
Measurement items for reference only

Standard numbers are for reference only; verdicts are given clause by clause (pass, fail, not measured) based on the measurement items. This is not a conformity certification.

Specifications

Supported Specifications

Robot-agnostic architecture · environment types · sensor types

Supported Robots

New robot = one configuration file — below are examples used in testing

🦾

Robot Arms (Manipulators)

  • Franka Panda
  • UR10 · Kinova Gen3 · Techman TM12
  • AgileX PiPER
🤖

Mobile Robots (AMR)

  • NVIDIA Nova Carter
  • Clearpath Husky
  • Delivery robot + robot arm
🐕

Legged Robots

  • Boston Dynamics Spot
  • ANYbotics ANYmal D
🚁

Drones · Aerial Vehicles

  • Quadrotor
  • Fixed-wing
🛡️

Unmanned Systems (Ground · Surface · Underwater)

  • Tactical vehicle
  • Unmanned surface vessel
  • Unmanned underwater vehicle

Customer robot registration supported (robot data preparation · calibration by agreement)

Supported Environments

Built from maps · drawings · automatic generation

📦

Logistics Warehouse

  • Racks
  • Conveyors
  • Charging stations
🏭

Factory

  • Production lines
  • Workbenches
  • Traffic routes
🏥

Hospital · Service

  • Corridors
  • Patient rooms
  • Elevators
🌆

Outdoor · Urban · Terrain

  • Roads
  • Buildings
  • Terrain

Automatic environment generation · condition variation supported

Sensor Models

Noise · degradation · faults injected as conditions

📡

LiDAR

2D / 3D · noise · fault injection

📷

Camera

Color · depth · lens distortion

🧭

IMU

Acceleration · gyro · drift

🛰️

Satellite navigation

Jamming · degradation conditions

👆

Contact

Contact · collision detection

Verdict Method

Physics verdictJudged on measured quantities
Sensor modelPhysics-based
Verdict statesPass · Fail · Not-measured
Batch testingCondition sweeps run automatically
Multiple agentsTested concurrently under one scorer
Policy adaptationDiagnosis designs the next training

Integration

ROS 2 (Jazzy)
Native integration
Nav2
Navigation stack
REST API
Test requests · result queries
OpenUSD
Scene · asset format
VDA 5050
Integration scope under review
MuJoCo
Cross-check with another engine
Why imSim

Why imSim?

The difference is whether a scoring layer is included — this is not a ranking of performance

Physical validity of success
Checks whether task “success” actually happened physically
imSimimSim
Verdict from contact, position, and force measurements · a success that didn't hold up scores zero
Physical on-site testingObserved and recorded by people
General-purpose simulation toolsRequires separate implementation
When a required measurement is missing
Handling of items with no means of measurement or no incoming values
imSimimSim
Fails with the reason “measurement absent” · not-measured items counted separately
Physical on-site testingDepends on test design
General-purpose simulation toolsRequires separate implementation
Scorer self-check
Checks that the scoring program does not produce wrong verdicts
imSimimSim
Negative controls · scheduled automatic checks (being expanded)
Physical on-site testingNot applicable
General-purpose simulation toolsRequires separate implementation
Disclosure of the gap to real robots
States how closely simulation results match reality
imSimimSim
Real-robot comparison stage disclosed · “none” when there is no evidence
Physical on-site testingPhysical testing (no gap)
General-purpose simulation toolsRequires separate implementation
Multi-Robot Simulation
Test multiple robots simultaneously in one environment
imSimimSim
Physical on-site testingLimited by the number of units available
General-purpose simulation tools
ROS 2 Integration
Connect ROS 2 nodes directly to the simulation
imSimimSim
Physical on-site testingRuns the robot software as is
General-purpose simulation tools
Physics Engine
Physics simulation of contact, friction, collisions, and more
imSimimSim
Physical on-site testingPhysical hardware (not applicable)
General-purpose simulation tools
AI Training Integration
Reinforcement learning connection · test records converted into training data
imSimimSim
Physical on-site testingHeavy data-collection burden
General-purpose simulation tools
Run Viewing
Watch test-run video in a web interface
imSimimSim
Physical on-site testingOn-site observation
General-purpose simulation tools

“General-purpose simulation tools” refers to physics execution tools in general, not to any specific product.