Tavotto
AI drew your research figure. Tavotto makes it publication-ready: edit matplotlib figures on a canvas, lay out in mm, check journal rules. Free, open source.
翻譯準備中
Digital Sculpting tool. Spartan by design.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
GPU sculpting, anywhere. One C++17 codebase; sculpts natively on WebGPU or OpenGL,
and in your browser with nothing to install.
▶ Sculpt now: tpn.itch.io/chisel-sculpt —
needs a WebGPU browser (Chrome/Edge 113+, or Firefox/Safari with the flag on).檢視完整 README ↗GPU sculpting, anywhere. One C++17 codebase; sculpts natively on WebGPU or OpenGL, and in your browser with nothing to install.
▶ Sculpt now: tpn.itch.io/chisel-sculpt — needs a WebGPU browser (Chrome/Edge 113+, or Firefox/Safari with the flag on).
Chisel runs the entire sculpt pipeline on the GPU: brushes, normals, masking, selection, remeshing, and voxel merging all execute as compute shaders. The CPU orchestrates; the GPU does the work. It is spartan by design — no menus to dig through, every control a keystroke or a hold-and-drag — because the two things that matter are raw speed at high polygon counts and never interrupting the artist.
Project files are cross-platform: a .chisel saved in the browser opens
identically in the native build, and vice versa.
Full controls and workflow: MANUAL.md. Quickstart: left-drag on the
mesh sculpts, off the mesh orbits; 1–4 switch modes; hold S/W/A + drag to tune
the brush; X mirrors; Ctrl+Z undoes; 0 is retopology.
The mesh stays GPU-resident. A render-target snapshot at pen-down gives the CPU screen-space depth/normal/triangle-ID buffers to pick against, so a stroke runs with zero GPU sync until pen-up. Mesh data is flat SOA arrays with CSR adjacency — no half-edges, no linked lists. Normals recompute partially (dirty vertices only), GPU uploads are partial, and the brush hot path allocates nothing.
The GPU layer is a thin seam with two backends: WebGPU (WGSL kernels — wgpu-native on desktop, the browser's own WebGPU via Emscripten on the web) and OpenGL 4.3 compute (GLSL kernels) as the reference/fallback path. Every kernel exists in lockstep WGSL + GLSL; the same application code drives both.
Dependencies (native): libglfw3-dev, libgl-dev, libglx-dev, libegl-dev, CMake.
# Native, WebGPU backend (wgpu-native, fetched automatically)
cmake -B build-wgpu -DCHISEL_GPU_BACKEND=webgpu && cmake --build build-wgpu -j$(nproc)
./build-wgpu/chisel
# Native, OpenGL 4.3 backend
cmake -B build-gl -DCHISEL_GPU_BACKEND=gl && cmake --build build-gl -j$(nproc)
./build-gl/chisel
# Browser (Emscripten ≥ 4.0.10 with the emdawnwebgpu port)
source ~/emsdk/emsdk_env.sh
emcmake cmake -B build-web -DCHISEL_GPU_BACKEND=webgpu && cmake --build build-web -j$(nproc)
# serve build-web/ over HTTP and open chisel.html
CI builds a Linux AppImage and a Windows zip on every tagged release.
chisel [file] [flags]
file — a .chisel project or .obj model to open on launch.--max-level=N — raise the subdivision cap (default 9, max 12). Levels
past 9 get heavy on the CPU (level switches, merge, remesh roughly 4x per
level); the GPU-limit guard still refuses what your card can't hold.--mirror=spatial — use the spatial-hash mirror pairing instead of the
topology map.--toaster — shrink the undo history budgets for low-memory machines.--ring-mb=N — debug: cap the GPU undo ring at N MB.Chisel was vibecoded with Anthropic's Claude.
MIT License. See LICENSE for details.