SLender is a Blender extension for managing Second Life and OpenSim LOD assets with explicit metadata instead of brittle collection-only conventions.
- Extension-first package with
blender_manifest.toml - Targeted at Blender 4.2 LTS and verified on Blender 5.1.0
- GLB is the primary export path
- Collada is kept only as a temporary compatibility backend when Blender exposes it
- Legacy scenes can be migrated from the old
HighLOD/MediumLOD/Physicsstyle collection workflow
The original add-on was written around Blender 2.8-era practices:
- add-on directory config files
- global context helpers
- selection-mutating export
- collection and object naming as the only source of truth
The current refactor replaces that with:
Scene.slenderas canonical scene stateObject.slenderas canonical asset metadata- explicit
asset_id,part_key, andlod_role - export backends for GLB and temporary Collada compatibility
- validation and migration services that are independent of viewport collection layout
- Metadata tagging for High / Medium / Low / Lowest / Physics roles
- Basic LOD duplication from selection
- Physics cube generation
- Asset validation
- Land Impact calculation helper
- GLB export (with timed auto-export option)
- Mesh-name cleanup
- UV map cleanup
- Simple SL-oriented material setup helper
- Tag mesh objects as managed.
- Set
asset_idto group parts that should export together. - Set
part_keyto the stable per-part export name. - Set
lod_rolefor each object. - Run validation.
- Export GLB.
SL naming rules are still preserved on export:
- High: unsuffixed
- Medium:
_LOD2 - Low:
_LOD1 - Lowest:
_LOD0 - Physics:
_PHYS
Those suffixes now live in preferences and are treated as export compatibility, not as the canonical authoring model.
If you have an older scene:
- the extension can read the legacy
config/SLender.cfgonce to seed preferences Migrate Legacy Scenescans the old collection names and suffixes- detected objects are converted into metadata-driven managed assets
The migration defaults each legacy object to its own asset group. Multipart assets can then be regrouped by editing asset_id.
- The old collection-visibility UI was removed during the modernization pass.
- The repo keeps the old legacy config file only for migration input; runtime state is now stored in Blender preferences and extension user storage.
- Public extension packaging is now the mainline path. There is no separate legacy add-on track.
Build Preview Extensionruns on pull requests, pushes tomaster, and manual workflow runs.- Preview packages are renamed to include
-preview-<sha>, for exampleslender-0.2.0-preview-1a2b3c4.zip, and are uploaded only as workflow artifacts. Release Extensionruns only when pushing a tag such asv0.2.0.- The release workflow verifies that the tag matches
versioninblender_manifest.tomlbefore publishingslender-0.2.0.zipto the GitHub release for that tag.