Skip to content

Releases: invisiblelevel/WearCraft

WearCraft 1.1.1

Choose a tag to compare

@invisiblelevel invisiblelevel released this 06 Oct 17:33

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 vNormal in shaders) and in the final generated maps (via blend_by_geometry_mask in 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 key to 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_mask removed (was corrupting albedo)
  • Shaders: geoFactor() now reads from vNormal instead of a texture
  • Restored standard BoxGeometry / CylinderGeometry for 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

Choose a tag to compare

@invisiblelevel invisiblelevel released this 05 Oct 13:47

✨ 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.
  • 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.
  • 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.
    • maskThickness range −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

Choose a tag to compare

@invisiblelevel invisiblelevel released this 03 Oct 07:37

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