Skip to content
Back to skills

Scene Configuration

ASecurity

"This skill guides authors through validated IR-SIM YAML scenes,

  • 247 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 8, 2026
businesspythongobashapi

Works with

  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

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

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill scene-configuration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scene Configuration?

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

Security grade badge for Scene Configuration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-scene-configuration/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-scene-configuration)

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: scene-configuration
description: "This skill guides authors through validated IR-SIM YAML scenes,
  object geometry, kinematics, placement, collision policy, and state APIs."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# Scene configuration

Use this sub-skill when a task needs an IR-SIM YAML scene, a robot or obstacle,
object geometry, a kinematic control vector, placement distributions, collision
policy, or object state/goal inspection. Begin with the smallest explicit scene
and run the bundled checker before constructing an environment:

```bash
python sub-skills/scene-configuration/scripts/validate_scene.py --help
python sub-skills/scene-configuration/scripts/validate_scene.py scene.yaml
```

Run those commands from the generated IR-SIM skill root, or resolve the script
path from the installed skill location. The checker uses only
`yaml.safe_load`; it does not import IR-SIM or open a GUI. It returns non-zero
for malformed YAML, unknown schema keys, unsupported shape/kinematics/behavior
combinations, ambiguous Ackermann geometry, invalid control dimensions, and
mismatched per-object lists. It is a strict preflight, not a replacement for
`irsim.make()`.

## Route by intent

- Author or diagnose `world`, `robot`, `obstacle`, or `gui` YAML with
  [the schema reference](references/yaml-schema.md).
- Choose a footprint, understand exact collision geometry, or map a control
  vector to state updates with [geometry and kinematics](references/geometry-and-kinematics.md).
- Need repeatable placement, circle formation, random shapes/goals, or central
  RNG behavior? Use [distributions and randomness](references/distributions-and-randomness.md).
- Diagnose install, parser, factory, dimension, collision, path, and optional
  dependency failures with [troubleshooting](references/troubleshooting.md).

## Minimal construction loop

1. Install the base distribution (`python -m pip install ir-sim`) and verify
   `import irsim`; use `display=False` for headless work. `pynput` is optional
   keyboard input, `pyrvo` is optional ORCA, and `imageio[ffmpeg]`/ffmpeg is
   only needed for video output.
2. Define world extents/timing and collision policy, then one robot with an
   explicit `shape`, `kinematics`, `state`, `goal`, and compatible `behavior`
   when it should move. Objects without kinematics are static.
3. Add obstacles only after checking that initial Shapely footprints do not
   overlap. Keep explicit object names unique across both sections; `group`
   and `group_name` organize objects but do not replace names.
4. Validate a tiny fixture, then use
   `irsim.make("scene.yaml", display=False, seed=7)`. The factory accepts one
   mapping or a list of object-group mappings; `number` expands a group and
   the runtime repeats short per-object lists, while the bundled checker asks
   for exact lists to prevent accidental duplication.
5. Query `obj.state`, `obj.velocity`, `obj.goal`, `obj.geometry`,
   `obj.get_info()`, `obj.get_obstacle_info()`, `obj.arrive`, and
   `obj.collision`. Use `set_state`, `set_velocity`, and `set_goal`; after
   direct state changes, let the environment refresh/rebuild its spatial data
   before relying on collision or sensor queries.

Keep this route focused on scene/object contracts. Route environment lifecycle,
`step`/render/reset, and external stepping to
[simulation-environments](../simulation-environments/SKILL.md); sensor payloads
and maps to [sensing-and-mapping](../sensing-and-mapping/SKILL.md); behavior
selection and planners to [navigation-and-planning](../navigation-and-planning/SKILL.md);
and registry or custom-controller work to
[extension-and-control](../extension-and-control/SKILL.md). Runtime files are
self-contained: the original checkout, usage files, private environments, and
review artifacts are not dependencies.

Files in this skill

  • SKILL.md3.8 KB
  • references/distributions-and-randomness.md5.3 KB
  • references/geometry-and-kinematics.md8.4 KB
  • references/troubleshooting.md8.9 KB
  • references/yaml-schema.md9.3 KB
  • scripts/validate_scene.py27.7 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.