Repository navigation
Releases: invisiblelevel/WearCraft
Release list
WearCraft 1.1.1
What's changed
Geometry Limit (new feature)
- New "Geometry Limit" collapsible section in the preset panel
- Filter effects by surface normal direction: sides / top / bottom / top+bottom
- Works in preview (real-time, via
vNormalin shaders) and in the final generated maps (viablend_by_geometry_maskin Rust) - Fully consistent between preview and final output
- Supported: sphere, loaded models (OBJ/FBX with proper UV)
- Not supported: cube, cylinder, torus (technical limitation — overlapping UV)
Procedural Scratches — restored
- Fixed generation of procedural scratches (drawing code was accidentally removed)
- Restored all controls: density, length, thickness, waviness, branches, clusters
- Depth slider now genuinely affects normal relief
- Realistic scratches — dark body + bright rim
- Rim highlights are now clearly visible
Localization
- Cleaned up trailing spaces in JSON keys (ru/en/zh)
- Fixed Chinese terminology:
dirt,procedural,rim highlight,seed t()now safely falls back to the raw key if translation is missing
UI / UX
- Collapsible blocks in the params panel (
CollapsibleGroup.svelte) - All buttons now have
type="button"(prevents accidental form submits) - Right-click in the 3D viewport no longer opens the browser context menu
- Added
keyto the map-slot{#each}— no more flicker when toggling maps
Under the hood
- Rust:
blend_by_geometry_mask— proper interpolation between original and preset result - Rust:
apply_geometry_maskremoved (was corrupting albedo) - Shaders:
geoFactor()now reads fromvNormalinstead of a texture - Restored standard
BoxGeometry/CylinderGeometryfor cube and cylinder - Locale-aware
t()with English fallback
Installation
Download and run WearCraft_1.1.1_x64-setup.exe (NSIS installer)
Requirements: Windows 10/11 x64, WebView2 (ships with modern Windows).
WearCraft 1.1.0
✨ New
-
Decal — separate mode for projecting an arbitrary image (PNG/JPG) onto the model, like a sticker.
- Real-time preview via
decal-shader.js. - Position (X / Y), scale, rotation.
- Keep aspect ratio — optional.
- Opacity.
- Affect albedo / roughness / normal (each toggleable).
- Height — load a separate height map, or use the image's own brightness. Slider −1..+1 (emboss / engrave).
- Random position and random rotation per variation (variation 1 = slider values).
- Tile edges — decal wraps across texture borders.
- Generate bakes the Decal via Rust — formula 1:1 with the shader.
- Real-time preview via
-
HDR Environment — 5 lighting presets via Settings:
- Neutral — neutral studio (default).
- Warm — warm light.
- Cool — cool light.
- White — flat bright light.
- Night — dark scene.
- Intensity slider 0–200%.
- "Show HDR background" checkbox — renders the HDR as the backdrop.
-
UI Zoom — interface scaling:
- Hotkeys:
Ctrl+=(zoom in),Ctrl+−(zoom out),Ctrl+0(reset). - Steps: 75% / 90% / 100% / 110% / 125% / 150% / 175% / 200%.
- "Interface" tab in Settings.
- Saved to localStorage.
- Hotkeys:
-
Variations — reworked "Parameters" block:
- Header renamed to "Generate Variations".
- Slider 1..50 + narrow input field.
- Removed the duplicate label.
-
"Generate" button — moved from the left Rail into the viewport (top-right, accent pill).
- Enabled only when there is something to generate (PBR + mask / decal / preset).
- Label changes: "Load PBR" → "Load a mask" → "Generate".
🔧 Changes
-
Streaks (procedural) — fully new formula:
- Before: SDF segments + noise at the edge (shape looked like "spikes", not drips).
- Now:
value_noise + fbm + threshold + vertical stretch— reads as drips. - Seed affects the shape via parameter modulation (frequency ±15%, threshold ±10%, UV shift), not via the hash.
- New defaults: count=28, size=1.5%, stretch=20, threshold=20%, sharpness=60%, thickness=35%.
- New "Stretch" slider (up to 20).
- Removed "Waviness" slider from procedural mode (unused).
-
Scratches — two modes:
- Procedural — old Bezier scratches (no real-time preview).
- Masks — custom mask + library, like dirt / rust / streaks.
- Mode switch — segmented control.
maskThicknessrange −1..0 (engrave).
-
Streaks (masks) — separate folder
%APPDATA%/WearCraft/masks/streaks/. Custom mask + library. -
Settings panel — new "Environment" tab (5 HDR presets + intensity).
🐛 Fixes
- "Mask" block at the top of ParamsPanel — now visible only for the "Custom" preset. Hidden for other presets (they have their own "Custom mask" / "Library" buttons inside their sections).
- Preview and final sync for Streaks — preview matches
wear_01/albedo.png. - Removed confusing UI duplication in ParamsPanel for Custom.
📦 Contents
- Platform: Windows x64.
- Installer: NSIS (
WearCraft_1.1.0_x64-setup.exe). - Version: 1.1.0.
- Stack: Tauri 2 + Svelte 5 + Vite + Three.js + Rust.
WearCraft 1.0.0
First stable release — procedural wear generator for PBR textures.
Features
- Presets: Custom mask, procedural scratches, spots, rust
- Masks: Own mask (single PNG) or library (folder-based, %APPDATA%)
- Positioning: Global position, rotation, random rotation for library masks. Per-instance controls for user mask
- Generation: Parallel (rayon), N unique variations, each with own seed
- Preview = Final: Shader in Three.js matches Rust baking bit-for-bit
- 3D Viewer: Sphere, cube, cylinder, torus, custom .obj / .gltf. HDRI, AgX tone mapping
- Export: Unreal Engine (ORM + DX normal), Unity (MetallicSmoothness, Built-in / URP), PNG / ZIP / OBJ
- i18n: Russian / English / Chinese
- Manual: Full HTML guide (RU / EN / ZH) with lightbox screenshots
Installation
Download WearCraft_1.0.0_x64-setup.exe and run.
Requirements
- Windows 10 / 11 (x64)
- No additional dependencies
Tech Stack
Tauri 2 · Svelte 5 · Three.js · Rust (image, noise, rand, rayon)
License
MIT — free for commercial use.
Made by INV.LVL · 2026