Jump to content

3 Screenshots

This is a very early Beta of application I can not guarantee perfect result there will most likely be bugs please feel free to ask questions or report bugs, make suggestions etc. Discord is here https://discord.gg/U34agzZK 

If updating 

Delete cached deps folder on your pc:
~/.slidesmith/python-deps (Windows: %USERPROFILE%.slidesmith\python-deps)
after deleting and before running new version

If You're having issues with missing dependencies try running these commands in CMD/Console and make sure you have latest Microsoft Visual C++ Redistributable
pip install       
--upgrade pip pip install numpy scipy trimesh pyffi pyvista

Modern desktop app for scanning armor/clothing mod folders, auto-detecting likely source body type, and running a native conversion pass for supported target body types.

Supported target body types

  • cbbe
  • 3ba
  • himbo
  • bodytalk
  • tbd
  • sos
  • unp
  • bhunp
  • uunp
  • 7base
  • sam
  • vanilla
    -All other variants as well let me know if i missed one 

Edited by Dead_On_The_Inside


What's New in Version 0.3

Released

0.3
Moved Output Folder directly under Source Mod Folder
Replaced auto-detect default with required manual source body picker (detection shown as advisory hint only)
Addwd mixed-gender mod toggle with separate male source + male target dropdowns
Wired dual-gender args through ConversionRunArgs → IPC → main.ts → dual convertMod pass
Rewrote Tooltip.tsx with portal + fixed positioning (follows cursor, never clipped)
Replaced CSS pseudo-element tooltip rules with .tip-bubble fixed class
Added missing tooltips to packaging tags in Sidebar (FOMOD, MO2, Vortex)
Hardened CBPC physics config parsing for malformed spacing, duplicate entries, mixed formats, and legacy/alias bone names
Added regression tests covering duplicate keys, alias names, and non-standard CBPC assignment formatting
Updated converter logic so cross-body conversions do not copy source body-replacer NIFs that override target body meshes
Cross-body conversions now skip source body-replacer NIFs (femalebody/malebody) instead of copying them into output.
This prevents converted output from forcing the original CBBE body mesh over the selected UBE target body.
Hardened CBPC config detection and missing-bone completion logic for more real-world INI formats
Updated native conversion to rewrite text-based OSD payloads with the same alias/physics/gender normalization used for text metadata
Updated converter synthesis so when multiple outfits are missing projects, it now creates outfit-level synthesized OSP files (instead of one combined mod-wide synthesized OSP).
Added synthesis for missing TRI/OSD companions for outfit meshes (vanilla-style NIF-only cases), then let existing ShapeData synthesis mirror them into:
CalienteTools/BodySlide/ShapeData/...
Kept single-file synthesized OSP behavior when only one outfit is involved.
Updated tests to cover:
multi-outfit per-file OSP synthesis
TRI/OSD synthesis for vanilla-style inputs
Improved SliderSet supplementation logic
Existing SliderSet coverage now only counts as valid when the matching entry has a non-empty SourceFile.
This forces *_AutoSupplement.osp generation when source projects are incomplete (even if they have OutputPath/OutputFile).
Preserved folder-sensitive coverage behavior so same filenames in different mesh folders are handled correctly.
Updated normalization logic so BodySlide artifacts are routed to canonical BodySlide folders even when input paths are already under a canonical root
better support for Toast’s Guro-style multi-outfit layouts.
I fixed this by changing SliderSet coverage detection to use OutputPath + OutputFile matching (not filename-only), so outfits that share the same mesh filename in different folders no longer get skipped.
Added conversion fallback that synthesizes runtime mesh outputs from ShapeData-only assets
Ensured synthesized meshes preserve TRI/OSD companions and enable SliderSet generation for ShapeData-only mods
Added/adjusted behavior so ShapeData OSD companions are guaranteed in runtime mesh paths when needed
Fix conversion path normalization for BodySlide ShapeData TRI/OSD/NIF assets
Ensure synthesized ShapeData output also mirrors companion TRI/OSD assets needed by BodySlide workflows

0.2.5
alot of bug fixes and dependencies issues resolved 

make sure you latest Microsoft Visual C++ Redistributable
if you're still having issues with missing dependencies running these commands in CMD or Console may help 

pip install       

--upgrade pip pip install numpy scipy trimesh pyffi pyvista


Patch Notes
moved convert button to top of page 
Converted outfit/body mesh NIFs now also generate into:
CalienteTools/BodySlide/ShapeData/<TargetAlias>/...
Synthesized SliderSet OSPs now point to ShapeData paths (OutputPath/SourceFile) instead of only meshes/..., so BodySlide can resolve them correctly.
PyFFI support added and bundled
Fixed synthesized SliderSet OSP fields so OutputPath points to meshes output and SourceFile points to ShapeData-relative paths
Preserved nested BodySlide SliderSets/SliderGroups subpaths during output normalization to avoid file collisions and missing outfits
Broadened clothing/outfit NIF detection heuristics so more valid outfit meshes are converted
Updated/added converter tests for the corrected BodySlide paths and broadened clothing detection
Relaxed NIF conversion gating so outfit meshes are converted instead of broadly preserved
Fixed Python runner payload so mesh presence is reported (restores reference/weight stage accuracy)
Fixed Python engine input manifest so it now includes mesh file extensions (.nif, .tri, .osd) instead of only text files.
This restores accurate stage readiness checks (those stages were being downgraded because mesh presence wasn’t being reported).
Updated NIF conversion gating to convert more body/outfit-relevant meshes.
Still preserves clearly unrelated non-body meshes (like weapon/world mesh paths).
Added repair-artifact generation for missing NIF mesh and incomplete body metadata warnings
Integrate repair-artifact output into conversion reporting/warnings
python_engine assets are now accessible at runtime in EXE
Improved interpreter selection so Python core prefers the best available environment instead of stopping at first degraded run
Added/adjusted runtime tests for asar path filtering and interpreter scoring behavior
Prioritized runnable runner.py paths (prefer unpacked paths and avoid app.asar script paths for external Python)
Updated physics config patching so converted CBPC INI files now always append any missing required target physics bones (when the file is recognized as a CBPC config), instead of only patching in partial cases.
Improved SliderSet synthesis logic:
Still generates full auto .osp when no SliderSet project exists.
Now also detects incomplete existing SliderSet projects (missing OutputFile coverage) and generates a supplemental SliderSet file:
CalienteTools/BodySlide/SliderSets/<TargetAlias>_AutoSupplement.osp
This is aimed at preventing BodySlide “missing SliderSet data” issues.
NIF body/outfit relevance filtering
Added NIF classification so conversion rewrites only apply to body/outfit-relevant meshes.
Non-armor/non-clothing .nif files are now preserved without body-alias conversion rewrites.

0.2
Patch Notes
-Now uses delta-based morph transfer as the default:
Transfer morph deltas relative to reference bodies instead of copying final meshes.
Added a body reference database:
Stores per-body topology metadata, canonical vertex maps, skeleton/bone layouts, partition expectations, and physics-specific rules.
Supports universal core behavior plus per-body adapters for difficult topology pairs.
Moved all mesh/geometry/math conversion work into a Python core engine.
Engine separation — converter.ts, detector.ts
IPC correctly used — renderer only calls window.bodyslideAPI (contextBridge); all fs operations stay in ipcMain handlers in main.ts
Rewrote renderer as React + TypeScript
Expanded body knowledge metadata with skeleton guidance for Skyrim SE body families
Improved physics remap handling for additional cross-body pairs and missing-root edge cases
Added Patreon support button:
correctiveSmoothingZones added to all bodies in the reference DB
Upgrade build_quality_gates from single-status rollup to per-topic stage mapping
UUNP extended breast-chain bone keys fixed
Fixed body_reference_db.json — expand 3BA/TBD physicsBones to full chain, fix HIMBO/BodyTalk to [], fix BHUNP bone names, expand SOS genital chain, extend boneMaps, add adapters
Updated src/detector.ts — add detection signals for HIMBO V5, SAM morphs, SOS variants, BodyTalk V2/V3
HIMBO: Added himbo v[45], NPC L/R Pectoral bone signal
BodyTalk: Added bt2/bt3 keyword, cleaner bodytalk v[23] pattern
SOS: Added schlong, sos se, sos ae signals
SAM: Added sam_volume, sam_genital, samlightbodyconfig, bodymorph.*sam signals
Added uunp↔bhunp and 3ba→uunp explicit physics bone maps in src/converter.ts
Added 3ba→uunp map (collapses BreastRoot/BellyRoot to standard bones)
Added bhunp→uunp map (renames BHUNP-prefixed to NPC-prefixed)
Added uunp→bhunp map (renames NPC-prefixed to BHUNP-prefixed)
Enrich body metadata with aliases and common variants for every supported body type
improved detection with normalized alias matching and broader variant signals
added alternate-name coverage for all supported body types
added aliases/common variants for every supported body type.
shows aliases and common variants in the UI.
Fixed long-standing bug: 7base topology was "unp" — corrected to "legacy-female" to match bodyTypeInfo.ts
Added ~20 missing adapter pairs covering: sam ↔ bodytalk, himbo → sos, vanilla → 3ba/bhunp/uunp/himbo/sam/bodytalk, cbbe → bhunp, 3ba/tbd/bhunp/uunp physics downgrades, 3ba → unp cross-family, and 7base → cbbe/bhunp/uunp legacy upgrades
Expanded legacy alias rewriting tables with all new name variants (himbo v5, bt2, tbd se, sos ae, 7b bombshell, sam high poly conversion, unpb renewed, bhunp v3, 3ba body amazing, etc.)
Added explicit physics bone maps for TBD → UUNP, UUNP → TBD, and UUNP → 3BA (same NPC naming convention, prevents unnecessary fallback to indexed/semantic matching)
Tightened keyword matching to reduce cross-body false positives
Expand body-type alias/variant data where it improves recognition and conversion naming

Softbody + UBE coverage expanded
Added more softbody naming coverage for TBD and UUNP (in addition to earlier 3BA/BHUNP support).
Expanded conversion alias rewriting so UBE/UUNP softbody naming is normalized more reliably during conversion.
Physics remap robustness improved across bodies
Added compact/variant source-bone alias support for physics configs, including patterns like:
NPC LBreast01, NPC RBreast02, NPC LButt, NPC RButt01
This improves remapping reliability to target bones (especially BHUNP/UUNP/3BA-family conversions) instead of missing matches or falling back unnecessarily.
Detection + metadata refinement

Added extra detector signals for:
tbd softbody
uunp softbody
Updated body metadata variants to align with those conversions.
Added breastHeight/Depth/Width/nippleCurve slider keys to all female topology families (CBBE, UNP)
Added chestWidth/Depth/shoulderWidth slider keys to male family (HIMBO, BodyTalk)
Added natural morph equivalent across all families
Added physicsConfig to every physics-capable body — 3BA, TBD, BHUNP, UUNP, SOS, HIMBO, BodyTalk — specifying cbpcCompatible, hdtSmpCompatible, softbodySupported, physicsLevel, boneNamingConvention, and notes
Expanded boneMap with neck, clavicles, upper arms, forearms, hands, feet for all bodies
Added NPC L/R Pectoral physics bones to HIMBO and BodyTalk
Added 15 new adapter entries covering all missing cross-family paths
HIMBO and BodyTalk: physicsSupport flipped to true, physicsBones populated
3BA, TBD, BHUNP, UUNP: descriptions and common Variants expanded to properly document softbody HDT-SMP, CBPC variants, and (for UUNP) UBE alias and bone naming interoperability
Improved high-risk reference handling in Python co
Expanded reference DB adapter coverage
added modern routes, including more UUNP/BHUNP/CBBE/legacy downgrade coverage.
Improved UBE softbody physics alias remapping
✕ Clear buttons on both folder fields — click to reset without having to browse again
Basename label shown below each path — see the folder name at a glance
Auto-sync output — when you pick a source folder, output auto-fills as [source]-bodyslide-output; if you manually change the output, it stops auto-updating
BodyTalk added to the welcome screen list (it was already supported, just not listed)
Both dropdowns now use <optgroup> to separate ♀ Female Bodies (CBBE, 3BA, TBD, UNP, BHUNP, UUNP, UBE, 7base), ♂ Male Bodies (HIMBO, BodyTalk, SOS, SAM), and Other (Vanilla)
New Tooltip component — styled bubble (purple border, dark bg) using CSS data-tip
Smart dir prop: right for sidebar (extends into content area, never clipped), top/bottom elsewhere
Every control in the Sidebar has a tooltip — labels, inputs, buttons, selects, the badge, even the Patreon button
BodyInfoBox now shows a humor blurb per body type (e.g. "Like CBBE but blessed with extra volume in all the places. Dibella approved™" for TBD)
Results screen — every section, stat, audit check, and file item has a tooltip
Welcome screen — every feature bullet has a tooltip explaining the technical detail
New  Open Output Folder button in the results footer — opens the converted mod folder in your file manager directly
Visual progress bar that tracks conversion %
Stage label (Queued → Scanning files → Python engine → Converting assets → Writing reports)
Rotating fun facts shown during conversion 
UBE is now a first-class body type appearing in both input and output dropdowns:

Detector correctly identifies UBE mods (files named "UBE", "Unified Body Enhancer", "ube 2.0", etc.) as ube instead of misclassifying them as uunp
Physics bone remapping handles both UBE-native bone names AND UUNP-style bone names that appear in UBE mods (e.g. NPC L UUNP Glute 01 → BHUNP Butt L)
Full cross-body conversion support: UBE ↔ UUNP, BHUNP, 3BA, TBD, and from CBBE/UNP → UBE
Softbody is now visible in the dropdown via updated display names:

"3BA – 3BBB Amazing / CBBE SMP / Soft Body"
"BHUNP – BoneHunger UNP 3BBB / Soft Body"
(Softbody is a physics config mode, not a separate mesh topology — 3BA Softbody and BHUNP Softbody use identical meshes to their parent bodies, just with HDT-SMP per-vertex configs.)
 

unzip and run exe select mod folder you want converted when converting you should set output to different location so you don't risk overwriting original files 
if updating Delete cached deps folder on your pc:
~/.slidesmith/python-deps (Windows: %USERPROFILE%.slidesmith\python-deps)
after deleting and before running new version


make sure you have latest Microsoft Visual C++ Redistributable
if you're still having issues with missing dependencies running these commands in CMD or Console may help 

pip install --upgrade pip


pip install numpy scipy trimesh pyffi pyvista




×
×
  • Create New...