Verify a ForgeCAD MJCF export in MuJoCo with dynamics, contacts, controls, joint travel, and rendered evidence before calling it simulation-ready.
npx skills add https://github.com/ForgeCAD/forgecad-public-kit --skill forgecad-verify-mujoco
Use this when forgecad export mjcf ... is part of the deliverable. A model is not sim-ready just because forgecad check simready passes or the MJCF file loads: it must be loaded in MuJoCo, stepped under gravity, driven with the intended controls, contact pairs inspected, and rendered from useful views.
Routing: geometry-only visual inspection -> forgecad-inspect-model; model authoring/API questions -> forgecad; building a new model -> forgecad-build-model.
rm -rf /tmp/forgecad-mjcf && mkdir -p /tmp/forgecad-mjcf
forgecad export mjcf path/to/model.forge.js --output /tmp/forgecad-mjcf
scene.xml, not only the model XML, so the floor/camera/package context is included.xmat/xpos. Joint ref/default and connector frames can disagree with visual intuition.Sim.collider.none(...) just to make motion pass. If full visual mesh contact is unstable, use a physically defensible simplified collider or proxy and state what physical surface it represents.This skill ships a MuJoCo smoke verifier:
uv run --python 3.11 --with mujoco --with pillow \
python <this-skill-dir>/scripts/mujoco_verify.py /tmp/forgecad-mjcf \
--settle-seconds 2 \
--seconds 8 \
--actuator drum_velocity=-0.75 \
--watch-joint drum_joint \
--expect-drive-cycles drum_joint=-0.06:-0.03 \
--expect-final-qvel drum_joint=-0.02:0.02 \
--render-dir /tmp/forgecad-mjcf/verify \
--camera-preview-grid
Use --actuator name=value more than once for multi-actuator models. Use --expect-drive-cycles joint=min:max to assert signed final-minus-settled revolute travel in cycles/turns. Use --expect-drive-delta joint=min:max when you want raw MuJoCo qpos units instead. Use --expect-final-qvel joint=min:max to assert terminal velocity when the mechanism should stop or continue at a bounded speed. The script prints JSON with root drift, initial-to-final joint delta, post-settle drive delta, derived cycle counts, final velocities, expectation ranges, and top contact pairs, then writes PNG frames if --render-dir is supplied.
Prefer explicit travel envelopes over loose "it moved" checks:
When rendered orientation matters, start with --camera-preview-grid, open camera_preview_grid.png, pick the azimuth that shows the mechanism face or contact interface, then rerun with --camera-azimuth <deg> and any needed --camera-lookat, --camera-distance, or --camera-elevation adjustment. For mechanism evidence, prefer front/front-quarter views for user-facing GIFs and add a side/contact view only when it explains a collision better.
Rendering -> Contact points and Contact forces; use the right-side perturb/visualization panels if available in your build.contype="0" conaffinity="0" and cannot support anything; collision geoms are usually group 3.Report the exact export command, the MuJoCo command/script, key numeric results, the most important contact pairs, and the rendered image paths. Say what was not verified. Never say "sim-ready" when only forgecad run, forgecad check simready, or a successful export was executed.
Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take forgecad/forgecad-verify-mujoco from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.