ワンクリックで
plan-format
Output format specification for simulation plans — Markdown sections and current SimulationPlan schema conventions.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Output format specification for simulation plans — Markdown sections and current SimulationPlan schema conventions.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Entry point for FSI-coupled hybrid plans (plan_type=fsi_in_scene) — any scene combining SPH fluid (water tanks, dam-break, wave channels) with multi-body dynamics, optionally with a wheeled vehicle. Pick this over mbs_in_scene whenever the plan involves a fluid domain (scene_objects with domain_type starting "sph_") or an FSI body registration (scene_objects with fsi_registration set). Routes to fsi/sph (always), veh/wheeled_vehicle (when vehicle present), and enforces FSI-specific invariants distinct from generic mbs_in_scene rigid scenes.
Entry point for rigid-body hybrid plans (plan_type=mbs_in_scene) combining a robot or vehicle with scene assets — NO fluid coupling. Routes to the correct domain skills and defines only high-level invariants. Use core/fsi_in_scene instead when the plan involves SPH fluid or FSI body registration.
Entry point for pure multi-body simulation plans (plan_type=mbs). Routes the agent to the correct mechanics, system, and camera skills and defines only high-level invariants.
Entry point for static scene plans (plan_type=scene). Routes the agent to the correct scene, system, and camera skills and defines only high-level invariants.
Set up SPH-based Fluid-Structure Interaction (FSI): create ChFsiFluidSystemSPH and ChFsiSystemSPH, configure fluid and SPH parameters, seed fluid particles with hydrostatic initialization, add container BCE boundary markers, register floating rigid bodies, optionally couple with a wheeled vehicle, and advance with sysFSI.DoStepDynamics(dT).
Translate a `geometry_relations` entry from the plan into correct PyChrono coordinate code. Read this whenever the plan declares a relation_name you have not previously encoded, and especially BEFORE writing SetPos / camera placement for any body that participates in a multi-body geometric constraint. Each subsection below is one canonical pattern named exactly as it appears in `plan.geometry_relations[i].relation_name`.
| name | plan_format |
| description | Output format specification for simulation plans — Markdown sections and current SimulationPlan schema conventions. |
| compatibility | pychrono >= 8.0 |
| metadata | {"domain":"planning"} |
Defines the Markdown shape the PlanningAgent submits through submit_plan.
This document intentionally stays general: domain-specific construction
recipes belong in the domain skills and code-generation prompts.
Plans use H2 headers exactly matching these section names:
## plan_type## simulation_parameters## objectives## implementation_steps## scene_objects## assets## topology## visualization## recording_mode## clarifications_needed## geometry_relationsStructured sections use fenced yaml blocks. Flat string lists use dash
bullets. Empty sections may be omitted when they are truly empty, but keeping
the header is preferred for repairability.
scene: arranging 3D assets only; no mechanical bodies, joints, forces, or
dynamics beyond static placement.mbs: pure multi-body mechanics with no external scene assets.mbs_in_scene: rigid-body dynamics, vehicles, robots, or mechanisms combined
with procedural scene objects and/or external assets. No SPH fluid or FSI.fsi_in_scene: any plan combining SPH/FSI/CRM fluid or granular domains with
multi-body dynamics or scene geometry.Pure mbs plans leave implementation_steps: []. Other plan types use a
3-5 item YAML list. Each item is a SimulationStep:
- description: |
<imperative build/review directive>
assets: [<catalog asset names introduced this step>]
scene_objects: [<procedural scene object names introduced this step>]
cameras:
- position: [<scene_edge_x>, <scene_edge_y>, <proper_height_z>]
target: [<primary_action_or_visible_entities_center_x>, <..._y>, <..._z>]
up: [<up_x>, <up_y>, <up_z>]
constraints: []
motion_expectations: []
Rules:
assets[] or scene_objects[]; merge setup into that first visible step.cameras is always a list. The legacy singular camera shape is accepted by
validators for backward compatibility but should not be emitted.## geometry_relations and GEOMETRY_RELATION_RULES). There is no
silent FSI default — if the user did not specify side / chase / above,
raise it as a structured clarification with options (side -Y, side +Y,
perspective). When the relation is resolved, codegen reads the
matching pattern in geometry/scene_relations to produce the camera pose.motion_expectations is required on every step. Use [] for static/setup
steps. When non-empty, each name must refer to an asset with is_dynamic: true
or a scene object with fixed: false.motion_expectations as the CSV motion contract for the implementation
step description. Before finalizing each step, identify every named dynamic
body whose pose, velocity, orientation, or contact state is expected to change
during THIS step, and list those body names. Use [] only when the step is
strictly construction, placement, visualization, or setup with no intended body
motion.recording_mode selects the review video path:
vsg_only: VSG is the sole renderer. Each step must have exactly one camera.
Required for FSI, SPH, fluid, or particle-domain scenes that sensor cameras
cannot render correctly.sensor_cams: ChSensorManager / setup_preview_camera renders one MP4 per
camera. Each step must have 2-3 cameras from complementary viewing
directions, not zoom variants of the same view.visualization.mode should align with recording mode. FSI/SPH plans use
mode: vsg with recording_mode: vsg_only; non-FSI plans typically use
vsg_with_sensor_camera with recording_mode: sensor_cams.
Use assets only for external loadable catalog rows:
- name: <catalog name>
type: <mesh | urdf | vehicle_json | wrapper_vehicle | texture | heightmap>
filename: <exact catalog path> # file-backed rows
factory: <exact catalog factory> # wrapper_vehicle rows
count: 1
fixed: true
is_dynamic: false
ideal_height: <float> # meshes only, when scale matters
description: <short description>
Use scene_objects for non-catalog procedural objects, generated boundaries,
terrain patches, solver domains, and fluid domains:
- name: <object name>
role: <short role>
construction_source: procedural_primitive | generated_boundary | fluid_domain
primitive: <box | sphere | cylinder | box_container | ...>
domain_type: <sph_fluid_box | ...>
size: [<x>, <y>, <z>]
fixed: true
dynamic: false
description: <short description>
Every concrete object requested by the user must appear in either assets[] or
scene_objects[]. Do not drop supports, containers, platforms, walls, tanks,
ramps, terrain patches, bridges, fluid domains, or generated boundaries just
because they are procedural.
For scene, mbs_in_scene, and fsi_in_scene, topology.scene_predicates
is the source of truth for placement. Every visible asset and scene object must
appear at least once as a predicate subject.
gravity_axis: -z
working_plane: xy
orientation_convention: z_up_native
scene_size: null
reference_heights:
- {name: ground_top, z: 0.0}
scene_predicates:
- subject: <asset_or_scene_object_name>
predicate: <predicate from planning/scene_coordinate_system>
object: root
params: {}
position: {x: <float>, y: <float>, z: <float>}
orientation: {deg_z: <float>}
body_positions: {}
joints: []
Use predicate names from planning/scene_coordinate_system. Pure mbs plans
may instead use body_positions, geometry, and joints.
geometry_relations is a YAML list naming each spatial relation between a
pair of bodies (or between camera and scene AABB) that the codegen agent
must encode in coordinates. Each entry corresponds to a subsection in the
geometry/scene_relations skill, which the codegen agent reads at
generation time to produce the correct SetPos / camera pose.
- relation_name: <pattern name from geometry/scene_relations skill,
e.g. platform_flush_wall_outer>
body_a: <body name from assets[] or scene_objects[]>
body_b: <body name, or "scene" / "camera" for non-body endpoints>
parameters: {<pattern-specific kwargs, e.g. wall: -x>}
Rules:
relation_name: TO_CLARIFY and add a matching clarifications_needed
entry per GEOMETRY_RELATION_RULES. Codegen will refuse to emit
coordinates for TO_CLARIFY relations, forcing a clarify round.relation_name MUST exactly match a heading in
chrono_code/skills/geometry/scene_relations/SKILL.md. Free-form names
are not understood by codegen.simulation_parameters must include time_step and simulation_duration.clarifications_needed when a
required value is unspecified.recording_mode is either vsg_only or sensor_cams.visualization.mode is one of the supported renderer modes, normally vsg,
vsg_with_sensor_camera, or headless.orientation uses {deg_z: <float>} for scene predicates.