Skip to content
Back to skills

Modeling Simulation

ASecurity

"Build, step, and debug core Newton simulation models, states,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
toolspythonbashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill modeling-simulation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Modeling Simulation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Modeling Simulation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-modeling-simulation/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-modeling-simulation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: modeling-simulation
description: "Build, step, and debug core Newton simulation models, states,
  controls, contacts, worlds, shapes, joints, and public loop patterns."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Newton modeling and simulation

Use this sub-skill when the task is to create or debug a Newton model, state, control, shape, joint, articulation, world replication, collision-pipeline allocation, or a minimal simulation loop with public APIs.

## Route here for

- `newton.ModelBuilder`, `newton.Model`, `newton.State`, `newton.Control`, and `newton.Contacts` usage.
- Choosing `add_body()` versus `add_link()` and connecting links with joints/articulations.
- Adding primitive, mesh, heightfield, SDF, or site geometry through public builder methods.
- Static, kinematic, and dynamic body setup.
- Forward/inverse kinematics helper calls such as `newton.eval_fk()` and `newton.eval_ik()`.
- Allocating `CollisionPipeline`, contacts, state buffers, and control buffers.
- Replicating worlds with `ModelBuilder.replicate()` and reasoning about `world_count`.
- CPU/CUDA device selection through Warp for small smoke checks.
- Fixing no-contact or stale-state issues in a basic loop.

## Route elsewhere

- Solver choice, MuJoCo/Kamino/VBD/MPM/coupled solver behavior, or contact tuning: use `../solvers-contacts/SKILL.md`.
- URDF, MJCF, USD, mesh file import, schema resolvers, or asset conversion: use `../asset-import-export/SKILL.md`.
- Actuators, controller objects, IK objective workflows, and `ArticulationView`: use `../robotics-control/SKILL.md`.
- Sensors, viewers, example CLI, recording, and visualization: use `../sensors-visualization/SKILL.md`.

## Read order

1. `references/api-reference.md` for verified public constructors and core method signatures.
2. `references/workflows.md` for minimal loops, world replication, body/joint patterns, and validation order.
3. `references/troubleshooting.md` for import/device, stale FK, target-layout, contact-capacity, and validation failures.
4. `scripts/build_minimal_scene.py` when you need a safe, runnable public-API smoke test.

## Core loop checklist

1. Set global compatibility switches, such as `newton.use_coord_layout_targets = True`, before constructing a `ModelBuilder` when joint position targets are involved.
2. Build or replicate the model with public `ModelBuilder` methods.
3. Finalize the builder into a `Model`, optionally passing a Warp device string.
4. Allocate two `State` buffers, one `Control`, one `CollisionPipeline`, and a `Contacts` buffer from the pipeline.
5. Call `newton.eval_fk(model, model.joint_q, model.joint_qd, state)` before maximal-coordinate solvers or collision checks when generalized coordinates define the initial pose.
6. Per substep: clear forces, collide, solver-step, then swap state buffers.
7. Validate counts and array shapes before tuning physics.

## Minimal safe smoke

From this sub-skill directory, run:

```bash
python scripts/build_minimal_scene.py --device cpu --steps 3
```

Use `--device cuda:0` only after the root `scripts/check_newton_env.py --require-cuda` succeeds. The script prints body/shape/joint counts and the final `body_q` shape; it does not download assets or open a viewer.

## Operating rules

- Use public imports only: `import newton`, `import newton.geometry`, and `import warp as wp`.
- Do not teach future users to import from `newton._src`; private modules are implementation evidence, not runtime API.
- Prefer small checks on CPU first, then repeat on CUDA only when the task requires acceleration.
- Treat `ModelBuilder.finalize()` validation warnings as actionable evidence; do not hide them by using broad `skip_validation_*` flags unless the task explicitly asks for advanced recovery.
- Keep model construction and solver tuning separate: prove the scene has the expected bodies, joints, shapes, worlds, and contacts before changing solver parameters.

Files in this skill

  • SKILL.md3.9 KB
  • references/api-reference.md5.1 KB
  • references/troubleshooting.md2.7 KB
  • references/workflows.md3.8 KB
  • scripts/build_minimal_scene.py2.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.