Skip to main content

DevAgent Smart Physical Engine

Verification-first agentic engineering, planning, optimization, simulation, and evidence runtime for robotic and industrial automation.

AI proposes. Deterministic engines validate, compile, verify, simulate, measure, and gate promotion. Existing certified controllers remain authoritative.

DevAgent Smart Physical Engine adds AI-assisted engineering to existing automation without replacing robot controllers, PLCs, safety controllers, or real-time servo loops. The core is provider-neutral and keeps engineering authority separated from model output.

Current version

v0.11.3 — Beta software / evidence-gated physical runtime

The Python software stack is regression-tested on Python 3.11, 3.12, and 3.13 with separate static/coverage, package-install, and runtime dependency security gates. The UR5e Gazebo/MoveIt path now contains production-candidate continuous-clearance, tool-collision, and workpiece-lifecycle capabilities, but those physical-simulation scopes remain EXPERIMENTAL until the executable target-workstation v0.11 campaign passes.

v0.11.3 also normalizes provider-neutral agent schemas at the OpenAI transport boundary so strict Structured Outputs can represent DevAgent optional fields without changing Anthropic/Gemini or deterministic core semantics.

Real robot execution remains locked. Functional-safety certification and site qualification are not claimed.

v0.11 capability status

Area Status
Provider-neutral Agent Core Implemented
OpenAI / Anthropic / Gemini structured adapters Implemented
Planner / Critic / Recovery Implemented
Natural-language engineering request front door Implemented
Deterministic compiler / semantic / verification gates Implemented
Multi-vendor robot profile registry Implemented
UR5e / FANUC CRX / KUKA KR / ABB IRB abstraction Implemented; physical qualification is vendor-specific
Evidence-aware canonical TwinSpec Implemented
Canonical Twin → Gazebo + MoveIt materialization Implemented
Gazebo / TF / MoveIt world read-back Implemented
Runtime-owned tool collision binding + read-back Implemented; target qualification required
Runtime-owned workpiece attach/detach + read-back Implemented; target qualification required
Discrete MoveIt state-validity precheck Implemented; simulation/debug only
Measured MoveIt collision distance Implemented in production-candidate verifier
Adaptive conservative continuous-path proof Implemented; qualified bound required
Measured minimum clearance + safety margin Implemented; target qualification required
Measured joint-state trajectory runtime Implemented
MoveIt FK TCP path / final TCP error Implemented
Quantitative sim↔real qualification gate Implemented; measured hardware dataset required
Python package/release supply chain Hardened CI + exact-green-main release + direct release.yml PyPI OIDC deployment
UR5e production-candidate simulation evidence Requires executable v0.11 target campaign
Physical commissioning Not qualified by source/CI alone
Site qualification Not qualified
Real robot execution Locked
Functional-safety certification Not claimed

Trust chain

flowchart TD
    USER[Engineer / customer application] --> REQUEST[Natural-language engineering request]
    REQUEST --> AI[Provider-neutral AI / Planner / Critic / Recovery]
    AI --> COMPILE[Deterministic compile + semantic policy]
    COMPILE --> VERIFY[Verified plan artifact]
    VERIFY --> TWIN[Canonical TwinSpec + SHA256]
    TWIN --> MATERIALIZE[Canonical materialization]
    MATERIALIZE --> GZ[Gazebo world]
    MATERIALIZE --> MOVEIT[MoveIt PlanningScene]
    MATERIALIZE --> TF[TF frames]
    GZ --> READBACK[Backend read-back]
    MOVEIT --> READBACK
    TF --> READBACK
    READBACK --> TOOL[Verified tool collision receipt]
    TOOL --> WORKPIECE[Verified workpiece lifecycle receipt]
    WORKPIECE --> MOTION[Exact PhysicalMotionPlan / Twin binding]
    MOTION --> CLEAR[Measured clearance + continuous proof]
    CLEAR --> SIM[ROS 2 / Gazebo execution]
    SIM --> MEASURE[Measured joint states + MoveIt FK]
    MEASURE --> EVIDENCE[Replayable evidence]
    EVIDENCE --> PROMOTION[Scope-specific promotion gate]
    PROMOTION --> LOCKED[Real execution remains separately locked]

The model never owns collision policy, minimum-clearance truth, dynamic scene state, qualification promotion, or real-hardware authorization.

Continuous collision and clearance semantics

The legacy/discrete verifier remains available for development and simulation but can never produce commissioning-usable evidence.

The v0.11 production-candidate verifier synchronizes the authoritative MoveIt PlanningScene, measures minimum collision distance, and adaptively proves every joint interval using a conservative collision-distance Lipschitz bound. If the proof cannot be established within configured sample/depth limits, it fails closed. There is no automatic downgrade to a sampled “pass.”

A commissioning-usable pre-execution receipt requires all of:

verified=true
continuous_collision_check=true
clearance_measured=true
minimum_clearance_m > 0
materialization_hash=<exact Twin materialization>
failure_codes=[]

The distance Lipschitz bound is itself qualification evidence and must be conservative for the exact robot/tool/collision model.

Tool and workpiece authority

Customer motion metadata can no longer claim that a tool collision model or workpiece attachment is verified.

ToolCollisionBinding is runtime configuration. The tool is applied as a MoveIt attached collision object and verified by geometry/link read-back before a receipt is accepted.

Workpiece state uses verified transitions:

WORLD → ATTACHED → WORLD

Attach/detach applies the PlanningScene change and verifies the resulting world/attached state. Missing or inconsistent read-back blocks the motion.

Installation

Python 3.11+ is required.

From PyPI after the corresponding release is published:

python -m pip install devagent-physical-engine

From source:

git clone https://github.com/tomha85/devagent-physical-engine.git
cd devagent-physical-engine
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .

Optional provider SDKs:

python -m pip install -e ".[openai]"
python -m pip install -e ".[anthropic]"
python -m pip install -e ".[gemini]"
python -m pip install -e ".[ai]"

Development/qualification tooling:

python -m pip install -e ".[dev]"

pip install does not install ROS/Gazebo system packages or perform privileged OS changes.

AI providers

Keep credentials outside WorldState/Twin data:

export OPENAI_API_KEY='...'
export ANTHROPIC_API_KEY='...'
export GEMINI_API_KEY='...'

Examples use the currently supported deterministic goal action load:

devagent-physical-ai doctor --provider openai
devagent-physical-ai qualify --provider openai --model <model-id>
devagent-physical-ai request \
  "Use a UR5e to load BOX_101 from conveyor_a to cnc_04. Simulate and verify the plan." \
  --provider openai --model <model-id>
devagent-physical-ai engineer \
  "Use a UR5e to load BOX_101 from conveyor_a to cnc_04. Simulate and verify the plan." \
  --provider openai --model <model-id>

Equivalent routing supports Anthropic and Gemini. Live AI qualification does not unlock real robot execution.

Software production gates

Repository CI now requires:

Python 3.11 regression
Python 3.12 regression
Python 3.13 regression
compileall
Ruff correctness checks
branch coverage threshold
wheel + sdist build
twine --strict
clean wheel installation/version smoke
runtime dependency vulnerability audit

Critical checkout/setup/artifact GitHub Actions are pinned to exact commits.

A successful main CI run drives release-on-ci.yml, which validates the package version and creates a normal GitHub Release at the exact CI-tested SHA. It then dispatches release.yml with workflow_dispatch at the exact release tag. Running Trusted Publishing in the directly dispatched release.yml is intentional: PyPI binds the OIDC publisher identity to that workflow filename and does not currently support reusable workflows for Trusted Publishing. release.yml rebuilds and re-verifies the exact tag, attaches wheel/sdist/SBOM/checksum evidence to the GitHub Release, and publishes through the GitHub pypi environment using OIDC.

UR5e ROS 2 / Gazebo target

Reference target:

Ubuntu 24.04
ROS 2 Jazzy
Gazebo Harmonic
gz_ros2_control
Universal Robots ROS 2 driver
ur_simulation_gz
MoveIt 2

Setup/diagnostics:

devagent-physical setup --profile ur5e-sim --dry-run
devagent-physical setup --profile ur5e-sim
devagent-physical ros doctor
devagent-physical ros demo
devagent-physical ros qualify-trajectory-runtime

v0.11 production-candidate executable qualification

The stronger campaign is deliberately separate from ordinary hosted GitHub CI because it requires the exact ROS/Gazebo/MoveIt target stack and qualified robot/tool collision-distance bound:

python -m devagent_physical_engine.ros2.qualification_v11 \
  --moveit-params-file /path/to/ur5e_moveit_params.yaml \
  --distance-lipschitz <qualified-m-per-radian-bound> \
  --safety-margin 0.005 \
  --log-dir ~/.devagent/v11-production-candidate-qualification

A green campaign requires canonical world read-back, verified tool attachment, verified workpiece attach+detach, synchronized MoveIt scene, conservative continuous collision/clearance proof, minimum clearance above margin, measured joint-state execution, and MoveIt FK evidence.

It may report:

promotion_candidate=true
simulation_commissioning_evidence_qualified=true
continuous_collision_check=true
minimum_clearance_measured=true

but still intentionally reports:

physical_qualification=false
commissioning_qualification=false
real_execution_allowed=false
site_qualification=false

Physical/site promotion requires measured hardware/shadow evidence.

Sim↔real qualification

The source now includes an explicit quantitative correlation gate. Default minimum criteria are:

observations >= 30
cycle-time gap p95 <= 10%
TCP error p95 <= 10 mm
behavior agreement >= 0.99
measured origin + dataset reference required

Missing evidence never qualifies. Customers may set stricter thresholds.

Optimization semantics

DevAgent does not claim a mathematical global optimum. It selects the best evaluated verified candidate among candidates actually generated, verified, and measured under the configured objective. A hard violation, failed verification/simulation, unknown required metric, or failed quality gate makes the candidate ineligible regardless of weighted score.

Documentation

Release policy

v0.11 is a Beta software release, not a declaration that every robot/site is physically commissioned. Capability promotion remains evidence-driven and scope-specific. Simulation evidence cannot silently become hardware/site qualification.

Ownership

DevAgent Smart Physical Engine
Copyright © 2026 Tom Ha
Original creator: Tom Ha
Original project: https://github.com/tomha85/devagent-physical-engine
All rights reserved.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devagent_physical_engine-0.11.3.tar.gz (182.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devagent_physical_engine-0.11.3-py3-none-any.whl (190.3 kB view details)

Uploaded Python 3

File details

Details for the file devagent_physical_engine-0.11.3.tar.gz.

File metadata

File hashes

Hashes for devagent_physical_engine-0.11.3.tar.gz
Algorithm Hash digest
SHA256 9403b97f004192aa24c19e2fe6f8cc6f147ab0c208e073e832136ddbb0e8a05b
MD5 154e3d9d00e1ab0452fc9f8571f32664
BLAKE2b-256 3f29b72ff91e5c658b62edacba1f6b34368aa044ae5ffcb35899e4f765f877ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for devagent_physical_engine-0.11.3.tar.gz:

Publisher: release.yml on tomha85/devagent-physical-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devagent_physical_engine-0.11.3-py3-none-any.whl.

File metadata

File hashes

Hashes for devagent_physical_engine-0.11.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4de6fde9ea71f6af98e8db937791dc927b47d3792bd3c6d5d62fbcd03e6be33e
MD5 3037531882af04a3364bf869d1b7367a
BLAKE2b-256 99b23bfd5809e4abc902d357b18b2de8722d224c6e82397e7df9f01505fe65e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for devagent_physical_engine-0.11.3-py3-none-any.whl:

Publisher: release.yml on tomha85/devagent-physical-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2.4.0

2 files

2.3.1

2 files

2.3.0

2 files

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.9.1

2 files

1.9.0

2 files

1.8.9

2 files

1.8.8

2 files

1.8.6

2 files

1.8.5

2 files

1.8.4

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.3.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.13.0

2 files

0.12.5

2 files

0.12.4

2 files

0.12.3

2 files

0.12.2

2 files

0.12.1

2 files

0.12.0

2 files

0.11.6

2 files

0.11.5

2 files

0.11.4

2 files

This release

0.11.3 This release

2 files

0.11.2

2 files

0.10.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page