BenchUp3D/editor: Free, open-source 3D woodworking and modeling software and SketchUp alternative. Built wit

6 phút đọc

BenchUp3D/editor: Free, open-source 3D woodworking and modeling software and SketchUp alternative. Built wit – Repository BenchUp3D/editor. Mô tả: Free, open-source 3D woodworking and modeling software and SketchUp alternative. Built with Rust, WebAssembly and WebGPU. Runs in your browser or on desktop. 100% vibe-coded with great emphase on stability, rendering speed and UI/UX.. 819 stars, 50 forks, ngôn ngữ chính Rust, cập nhật 2026-11-12.

1. Repository làm gì?

A free, open-source 3D modeling app for woodworking and furniture design, written in Rust. Plan individual boards, wood joints, and complete assemblies with exact measurements before heading to the workshop. The same editor runs as a native Windows, macOS, or Linux application and in a desktop browser through WebAssembly.

The workspace includes Select, Line, Rectangle, Circle, Polygon, Freehand, Push/Pull, Scale, Offset, Move, Rotate, Paint, Tape Measure, Protractor, Dimensions, a Union flyout, Router, Erase, and Orbit, automatic geometry snapping, filled planar faces, measured lines, full-enclosure box selection, groups and components, a right-click object menu, geometry clipboard, undo/redo, local autosave, and portable .bup project files, with support for legacy .k3d and .ketchup projects. It starts with an empty model. File → Import/Export adds SketchUp .skp import and Wavefront .obj export. Mobile and cloud storage are outside this version.

Model shelves, tables, cabinets, workbenches, and other furniture with precisely sized parts. Use groups, reusable components, and tags to keep the assembly organized, then inspect dimensions and fit from any angle. Measure three points with Protractor to place a persistent angle dimension automatically. The arc and label are saved in the project and follow attached geometry.

Create mortise-and-tenon, half-lap, tongue-and-groove, rabbet, dovetail, and finger joints between boards, including angled connections. Adjust joint dimensions and clearance with live previews. Dynamic joints update automatically when either board moves. Inspect machining diagnostics and cut guides, and trim excess material past a joint while keeping the original boards editable.

Set the grain direction on groups and components and show grain-direction guides directly on the model. Review how the grain runs across each board and through the full assembly before building. Grain orientation is saved with the project and follows the parts when they rotate.

In the Materials face style, parts with assigned wood stock show procedural grain and the result of their sanding and finishing steps. Set the wood color and product appearance in the material catalog, then adjust the recipe and appearance overrides in the part's inspector. Work rates and drying times affect estimates only. Explicit face colors and Color by Tag take precedence over the finish preview.

2. Dữ liệu và cấu trúc đáng chú ý

Select an edge with Router, then choose a profile in Properties to apply it immediately. Shape edges with chamfer, bevel, roundover, cove, rabbet, groove, Roman ogee, and bead profiles. Adjust the profile dimensions, change it later, or choose None to remove routing while preserving the original stock. Lines drawn on a solid face can also define routing paths. Saved routes contribute their length and work time to project estimates.

Plan materials and workshop work

Assign stock materials and wood types to parts, configure sanding and finishing products, and prepare cut lists, cutting plans, and workshop labels. Export cutting plans and time and cost estimates to PDF to take the design into the workshop.

This README covers developer installation, building, verification, and deployment. For instructions on using BenchUp, see the user documentation.

See CONTRIBUTING.md for pull request guidelines

Linux desktop builds use libudev through the hidapi dependency to discover SpaceMouse devices. The libudev-dev package supplies the headers and pkg-config metadata needed to compile this support, even if no SpaceMouse is connected. If compilation fails with Unable to find libudev or Package 'libudev' not found, install libudev-dev and retry. Browser builds do not use hidapi. See the upstream HIDAPI build prerequisites.

The dev-desktop profile enables incremental application compilation for faster rebuilds after edits. It preserves the usual development optimizations, full debug symbols, debug assertions, and overflow checks. The executable is target/dev-desktop/benchup-app (benchup-app.exe on Windows).

3. Khả năng ứng dụng và giới hạn

To rebuild and relaunch automatically after changes, install a prebuilt Watchexec executable and put it on your PATH, then run from the repository root:

This watches all workspace crates (including native reader sources and shaders), embedded assets, and dependency manifests. Saves within one second are grouped into one restart. Build output stays in the terminal; after a compilation error, the watcher retries on the next edit. Stop it with Ctrl+C. Each restart terminates the current app process, so save model edits before changing source files; only persisted state survives. This command watches application inputs; restart it manually after changing .env, Cargo configuration, or the Rust toolchain.

On Linux, register the application launcher and icons once after compiling:

This installs into your user data directory ($XDG_DATA_HOME, or ~/.local/share) without root access. GNOME on Wayland uses the application's ID and matching desktop entry to find its icon. Restart BenchUp after installing. The launcher points to the executable you pass, so later compilations with the same profile update it. For a release installation, pass its path: python3 scripts/install_linux_desktop.py target/release/benchup-app. Keep that executable in place, or rerun the installer with its new path if you move it. Omitting the path still selects target/debug/benchup-app for the standard dev profile.

Install the browser target and Trunk once:

Open http://127.0.0.1:8080. Keep the app on the same origin/port to restore the same saved model. No Node.js, JavaScript application framework, or backend is required. Trunk generates the JavaScript needed to load the Rust WebAssembly program.

Development builds use light optimization for application code and stronger optimization for dependencies and the geometry core, on both desktop and WebAssembly. Debug symbols, debug assertions, and overflow checks remain enabled. These optimizations target the cost of menu hovering, scrolling, and rendering in debug mode. The profile takes effect on the next development compilation; changing it recompiles affected dependencies once.

trunk serve continues to use the standard dev profile, which disables incremental compilation for benchup-app to avoid a WebAssembly linker issue. Use dev-desktop only for native development. Its first build populates a separate target directory; later edits reuse that profile's compilation artifacts.

The workspace keeps geometry formats and the embedded browser SketchUp reader in benchup-io, with the C/C++ reader and its safe Rust boundary in benchup-skp. The application depends on these crates, so UI edits reuse their compiled artifacts. The native reader compiles C/C++ files in parallel and no longer rebuilds when application server or update configuration changes.

Số liệu repository có thể thay đổi; nên mở liên kết nguồn để kiểm tra README, giấy phép và trạng thái phát hành.

Nguồn tham khảo: Xem bài gốc

📅 Âm: 5/10 · Tân Mão

📅 Lịch Âm Dương NsN

×
Hôm Nay · Thứ Sáu
Âm Lịch: 5 Tháng 10
Năm Bính Ngọ
📌 Can Chi: Tân Mão
✨ Hoàng Đạo: Tý (23-1), Dần (3-5), Mão (5-7), Ngọ (11-13), Mùi (13-15), Dậu (17-19)
Vĩnh Phúc (Liên Bảo - Vĩnh Yên)
31°C
Nắng Đẹp
💧 83% | 💨 18 km/h
Hôm nay 32°
02/11 28°
03/11 30°
04/11 31°
05/11 31°