Download Latest Version SculptForge-windows-x86_64-setup.exe (19.7 MB)
Home / v0.9.6
Name Modified Size InfoDownloads / Week
Parent folder
sculptforge_arm64.deb 2026-11-01 17.4 MB
sculptforge_bridge-0.9.6-legacy.zip 2026-11-01 32.7 kB
sculptforge_bridge-0.9.6.zip 2026-11-01 32.9 kB
sculptforge_bridge.zip 2026-11-01 32.9 kB
sculptforge_0.9.6_amd64.deb 2026-11-01 17.9 MB
sculptforge_0.9.6_arm64.deb 2026-11-01 17.4 MB
sculptforge_amd64.deb 2026-11-01 17.9 MB
sculptforge-0.9.6-1.aarch64.rpm 2026-11-01 17.7 MB
sculptforge-0.9.6-1.x86_64.rpm 2026-11-01 19.6 MB
sculptforge.aarch64.rpm 2026-11-01 17.7 MB
sculptforge.x86_64.rpm 2026-11-01 19.6 MB
SculptForgeZToolExport.txt 2026-11-01 3.7 kB
SculptForge-linux-x86_64.flatpak 2026-11-01 14.8 MB
SculptForge-macos.dmg 2026-11-01 33.6 MB
SculptForge-windows-x86_64-portable.zip 2026-11-01 15.4 MB
SculptForge-windows-x86_64-setup.exe 2026-11-01 12.0 MB
SculptForge-0.9.6-x86_64.AppImage 2026-11-01 24.0 MB
SculptForge-0.9.6-x86_64.AppImage.zsync 2026-11-01 82.2 kB
SculptForge-0.9.6-x86_64.flatpak 2026-11-01 14.8 MB
SculptForge-linux-arm64.AppImage 2026-11-01 23.2 MB
SculptForge-linux-arm64.flatpak 2026-11-01 13.4 MB
SculptForge-linux-x86_64.AppImage 2026-11-01 24.0 MB
SculptForge-0.9.6-linux-x86_64-vfx2027.tar.gz 2026-11-01 24.5 MB
SculptForge-0.9.6-linux-x86_64.tar.gz 2026-11-01 17.9 MB
SculptForge-0.9.6-windows-x86_64.exe 2026-11-01 12.0 MB
SculptForge-0.9.6-windows-x86_64.zip 2026-11-01 15.4 MB
SculptForge-0.9.6-linux-arm64.tar.gz 2026-11-01 17.4 MB
SculptForge-0.9.6-linux-x86_64-vfx2026.tar.gz 2026-11-01 24.8 MB
SculptForge-0.9.6-aarch64.AppImage 2026-11-01 23.2 MB
SculptForge-0.9.6-aarch64.AppImage.zsync 2026-11-01 79.6 kB
SculptForge-0.9.6-aarch64.flatpak 2026-11-01 13.4 MB
SculptForge-0.9.6-darwin-universal.dmg 2026-11-01 33.6 MB
SculptForge-0.9.6-linux-arm64-vfx2026.tar.gz 2026-11-01 23.3 MB
SculptForge-0.9.6-linux-arm64-vfx2027.tar.gz 2026-11-01 23.1 MB
SHA256SUMS.txt 2026-11-01 3.4 kB
README.md 2026-11-01 7.8 kB
SculptForge 0.9.6 source code.tar.gz 2026-11-01 47.0 MB
SculptForge 0.9.6 source code.zip 2026-11-01 47.5 MB
Totals: 38 Items   643.6 MB 7

The same evening as 0.9.5, the next batch from your reports and from askNK's review: Extract and Mirror And Weld, a flat background, a Flatpak, strokes that keep their shape on dense meshes (built on a patch by @bribblej-web), and a fix for Divide crashing on models from Blender, with a log file so a crash is never silent again.

Added

  • Extract (Tool > SubTool > Extract), as in ZBrush: the masked, visible part of a SubTool becomes a shell with Thick (a share of the SubTool's size; negative grows inward, 0 makes a single-sided surface), E Smt (smooths the stepped edge) and Double (both ways). Extract shows a preview below the source that follows the settings; Accept keeps it as a new SubTool with outer, inner and rim polygroups and the source's polypaint, as one undo step (undo removes the SubTool, redo puts it back). TCorne and TBorder make the rim triangles instead of quads at sharp corners or all along it. An unaccepted preview goes when the source changes and is never saved. Commands: extract, extract_accept, extract_cancel.
  • Mirror And Weld (Tool > Geometry > Modify Topology, X / Y / Z): keeps the + side of the plane through the origin, cuts polygons crossing it, mirrors the half and welds the seam into one watertight mesh, keeping polygroups, polypaint, mask, UVs, quads and sculpt layers (mirror_and_weld, with side=negative for the other half). Undoable.
  • A flat viewport background (#21): Preferences > Display > Background (also in the Render palette) switches between the gradient (the default) and Flat Colour with a colour picker. Store Config keeps it, projects keep their own, and set_background (mode, color) scripts it.
  • Mirror (Tool > Deformation, X / Y / Z): flips the SubTool across the plane through the origin, or in place with pivot=center (mirror). Undoable.
  • A log file, sculptforge.log in the user data folder (%APPDATA%\SculptForge\SculptForge on Windows, ~/Library/Application Support/SculptForge/SculptForge on macOS, ~/.local/share/SculptForge/SculptForge on Linux), so a crash is never silent: it holds the version, system and GPU, everything SDL_Log reports (the Windows build has no console), each command run (written before it runs), and on a crash a note with the cause, the last command and, on Linux and macOS, a stack trace. Each start keeps the previous session's log as sculptforge-previous.log and notes when that session didn't close normally; the restore dialog after a crash points to it. Help > Open log folder opens the folder; --log-dir writes the log elsewhere, and --crash-test segv|abort|throw crashes on purpose to test the note (ctest crash_log).
  • A Flatpak (#18): SculptForge-<version>-x86_64.flatpak and -aarch64.flatpak on every release (with version-less copies, SculptForge-linux-x86_64.flatpak and SculptForge-linux-arm64.flatpak), built from source on the freedesktop 26.08 runtime by packaging/flatpak/org.sculptforge.SculptForge.yml (packaging/flatpak/build.sh builds it locally). Sandbox: Wayland or X11, OpenGL, devices (for the SpaceMouse), network and the home folder. In a Flatpak the Blender bridge uses the host's folder and tells the add-on to start the app through Flatpak's launcher; the add-on also looks for that launcher. A package for the FlatPark repository, wrapping the release tarballs, is ready in packaging/flatpak/flatpark/.

Fixed

  • Strokes on dense meshes keep their shape (#19). When one dab cost more than a frame, the app placed every dab of a long pointer movement before reading the pointer again, so the next movement was longer still and a fast curve came out as a straight line. Dabs now wait in a queue that the app works through for 10 ms a frame, between reading the pointer and drawing; a long gap between pointer samples is drawn as a curve through the last samples, not a chord; and when the queue holds more than 24 dabs (or more than 0.05 s of work, whichever is larger) every second waiting dab is dropped, so the brush stays near the pointer. Measured with the new --measure-stroke 3,200 (a fast two-turn circle, 200 px brush) on a 21M-triangle sphere: dabs were up to 69 px off the circle before and are within 4 px now, at 82 ms frames instead of 143 ms. Light meshes place the same dabs as before. Based on a patch by @bribblej-web in [#19]. SF_STROKE_IMMEDIATE=1 places every dab at once as before; SF_STROKE_BACKLOG=N sets the queue limit in dabs (0: never drop).
  • The AppImage's root icon and .DirIcon are 512 px PNG files, not links to the SVG (#17), so AppImage managers such as AppManager and Gear Lever show the icon when they integrate it, and the current appimagetool accepts the AppDir. The AppImage is now built with appimagetool directly (packaging/linux/build-appimage.sh), which checks the AppDir before packing it.
  • Divide crashed on models with a vertex shared by 22 or more triangles (#16), such as a cylinder sent from Blender with Triangle Fan caps of 22 sides or more (21 worked) or Blender's UV sphere. The first subdivision level works out each vertex's neighbours from the base mesh; around a high-valence base vertex the list was gathered with every polygon twice before removing the repeats, which overran its 64 slots (3 x valence) and corrupted the stack when the viewport shaded the new level. The repeats are now removed before the list is joined, so it never holds more than 2 x valence (implicit adjacency is only used up to valence 32; above that the stored adjacency has no limit). Unit tests divide fan cylinders of 3 to 300 sides and UV spheres up to 200 segments, through OBJ and through the Blender Bridge, and compare every level's adjacency with a plain rebuild; a UI test receives the issue's meshes from the bridge and divides them in the app.
  • Generating with a ComfyUI workflow and a seed read freed memory, which could crash at random or set the wrong seed: while setting a node's seeds, the node was replaced after its first seed but its inputs were still read for the second (a sampler with both seed and noise_seed). Found with AddressSanitizer; the keys are now chosen before any is set. The unit test now has a node with both seeds.

Downloads

New here? install/ explains which file to pick, or install with one command: curl -fsSL https://raw.githubusercontent.com/islandmed/SculptForge/main/install/install.sh | sh (macOS / Linux), irm https://raw.githubusercontent.com/islandmed/SculptForge/main/install/install.ps1 | iex (Windows PowerShell). Each file is also attached without its version number (e.g. SculptForge-macos.dmg) so links to releases/latest/download/... always get the newest build.

Platform File
Windows 10/11 (x64) SculptForge-…-windows-x86_64.exe (installer) or .zip (portable)
macOS 11+ (Apple Silicon and Intel) SculptForge-…-darwin-universal.dmg
Ubuntu / Debian / Mint / Pop!_OS sculptforge_…_amd64.deb or …_arm64.deb
Fedora / RHEL / Rocky / Alma 8+ sculptforge-…x86_64.rpm or …aarch64.rpm
Studio pipelines (VFX Reference Platform) SculptForge-…-linux-…-vfx2026.tar.gz (GCC 14.2, glibc 2.28) or …-vfx2027.tar.gz (glibc 2.34), with the Python 3.13 module
Any Linux SculptForge-…-x86_64.AppImage or …-aarch64.AppImage (they update themselves with AppImageUpdate)
Arch Linux yay -S sculptforge (AUR)

The builds are not code-signed yet. macOS: right-click the app → Open the first time. Windows: if SmartScreen appears, choose More info → Run anyway. Checksums are in SHA256SUMS.txt.

Source: README.md, updated 2026-11-01