opensim-asset-creation

Create OpenSimulator objects, particles, and animations via LSL scripts and IAR archives.

1|Updated May 10, 2026
One-click install
npx skills add https://github.com/sanchorelaxo/opensim-tools --skill opensim-asset-creation-sanchorelaxo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: opensim-asset-creation
Source: https://github.com/sanchorelaxo/opensim-tools/tree/main/opensim-asset-creation
Command: npx skills add https://github.com/sanchorelaxo/opensim-tools --skill opensim-asset-creation-sanchorelaxo

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? OpenSimulator's console cannot create objects — commands like create cylinder fail and load xml2 silently drops prims. This Skill provides the complete workflow for creating in-world assets using LSL/OSSL scripts, rezzer prims, BVH-to-animation conversion, and IAR inventory archive building, including fixes for OpenSim 0.9.3.0 YEngine quirks that break standard LSL code. ## Core Features & Use Cases - LSL/OSSL Script Library: Ready-to-deploy scripts for object rezzing (llRezObject), particle systems, animations, sounds, gestures, clothing attachment, and a unified master controller with HTTP remote triggering. - OpenSim Compatibility Fixes: Documents YEngine limitations — no break/continue, no symbolic PSYS constants, no llClamp — with tested numeric replacements and workaround patterns. - Asset Pipeline Tools: Python utilities to convert BVH mocap files to .anim format, batch-convert directories, and build/import IAR inventory archives via the REST console. - Use Case: You need to populate an OpenSim region with animated objects and particle effects. Deploy the master-controller.lsl script into a prim, convert your BVH files with batch_bvh_to_anim.py, package everything with iar_builder.py, and trigger effects remotely over HTTP. ## Quick Start Ask the AI to generate an OpenSim LSL script that rezzes an object from prim inventory with a fire particle effect using numeric PSYS constants.

Frequently Asked Questions about opensim-asset-creation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create objects in OpenSimulator when console commands fail?

OpenSim console has no working object creation commands — `create cylinder` returns invalid command and `load xml2` silently fails. Create a rezzer prim in-world, add template objects to its inventory, and use an LSL script calling llRezObject() to spawn copies.

How to convert BVH mocap files to OpenSim animations?

Use bvh_to_anim.py for single files or batch_bvh_to_anim.py for directories to produce .anim files with SL bone name mapping. Note the rotation mapping is not fully validated, so viewer upload remains more reliable for production animations.

Why do PSYS particle constants cause undefined constant errors in OpenSim?

OpenSim 0.9.3.0 YEngine does not support symbolic particle constants like PSYS_SRC_PATTERN_EXPLODE or PSYS_PART_EMISSIVE_MASK. Replace them with raw integers — 2 for EXPLODE pattern, 4 for ANGLE_CONE, 256 for emissive glow.

Does OpenSim LSL support break and continue in loops?

No, OpenSim YEngine rejects both break and continue keywords. Exit loops by setting the counter to the limit (i = count) and restructure continue logic by wrapping the loop body in an if-else block.

How do I import assets into OpenSim inventory from files?

Build an IAR archive with iar_builder.py using the create command with --assets type:path arguments, then run the import subcommand which copies the archive to the OpenSim bin directory and executes load iar via the REST console.

Why does llRequestURL return URL_REQUEST_DENIED in OpenSim standalone mode?

The UrlModule reads ExternalHostNameForLSL from the [Network] config section, not [URLAccessModule]. Add ExternalHostNameForLSL to [Network] in OpenSim.ini, and check that later-included config files do not override the section.