Fork of HakanSeven12/OpenCADStudio (GPL-3.0), patched for embedded job-scoped load/save integration with the CMMS.
  • Rust 71.9%
  • Fluent 26.7%
  • WGSL 0.7%
  • Max 0.3%
  • HTML 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Karim Jerbi 513ab958a8 perf(grid): cache overlay geometry behind a params-keyed key
Introduce a cache for the grid overlay to prevent redundant geometry
reconstruction on every UI redraw. Extract the pure projection logic
from draw_grid into a renderer-free grid_segments function, and add
GridKey and GridCanvasState to memoize the resulting Geometry.

The cache key includes all per-pane GridParams and the overlay bounds,
preventing stale geometry when camera changes within the same canvas
size. On a params-key miss, the iced cache is cleared before redrawing
to bypass its bounds-only reuse.

Tests: 8 new unit tests cover key invalidation and state handling.
Benchmarks: uncached geometry ~32 us/frame vs cached decision ~90 ns,
a >99% reduction. Verified: 472 passed / 1 pre-existing failure / 4
ignored.

Tests:
  ui::overlay::grid_key_tests::grid_key_matches_identical_params
  ui::overlay::grid_key_tests::grid_key_invalidates_on_changed_fields
  ui::overlay::grid_key_tests::grid_key_invalidates_when_any_pane_changes
  ui::overlay::grid_key_tests::should_reuse_empty
  ui::overlay::grid_key_tests::should_reuse_equal
  ui::overlay::grid_key_tests::should_reuse_changed
  ui::overlay::grid_canvas_state_tests::default_state_has_no_cached_key
  ui::overlay::grid_canvas_state_tests::stored_key_is_recognized_by_should_reuse
2026-08-26 23:53:31 +01:00
.cargo fix(build): scope Windows debug stack 2026-08-17 22:46:50 +03:00
.claude feat: add local settings for Bash permissions 2026-04-30 10:01:17 +03:00
.github feat(web): add SEO landing page 2026-08-22 09:33:38 +03:00
assets fix(tolerance): complete workflow integration 2026-08-27 00:14:08 +03:00
crates fix(tolerance): complete workflow integration 2026-08-27 00:14:08 +03:00
docs fix(tolerance): complete workflow integration 2026-08-27 00:14:08 +03:00
locales fix(dimension): complete ordinate workflow 2026-08-25 21:36:04 +03:00
packaging fix(macos): declare DWG/DXF UTIs, sandbox the QL appex, add signed-build script (#365) 2026-07-17 10:28:23 +03:00
plugins registry: add MCP Bridge 2026-08-25 21:02:56 +02:00
scripts feat(web): add SEO landing page 2026-08-22 09:33:38 +03:00
site docs: update workspace screenshot 2026-08-22 15:51:15 +03:00
snap fix(snap): handle desktop runtime paths 2026-08-16 09:13:18 +03:00
src perf(grid): cache overlay geometry behind a params-keyed key 2026-08-26 23:53:31 +01:00
tests feat(properties): make inherited properties editable, align dropdowns, and switch transparency to EditChoice 2026-08-23 23:20:34 +01:00
web feat(i18n): add seven UI locales 2026-08-14 11:06:53 +03:00
.gitattributes chore(git): enforce LF line endings via .gitattributes 2026-08-15 13:12:34 +01:00
.gitignore fix: stabilize web loading and paper rendering 2026-07-25 21:34:29 +03:00
build.rs fix(build): scope Windows debug stack 2026-08-17 22:46:50 +03:00
Cargo.lock fix(dimarc): complete merge integration 2026-08-27 01:00:23 +03:00
Cargo.toml fix(dimarc): complete merge integration 2026-08-27 01:00:23 +03:00
i18n.toml feat(locale): add Fluent translations 2026-08-02 18:53:38 +03:00
index.html docs: add Bulgarian README 2026-08-22 13:17:00 +03:00
LICENSE Initial commit 2026-03-22 14:53:51 +03:00
README.md docs: update workspace screenshot 2026-08-22 15:51:15 +03:00
SECURITY.md Enhance SECURITY.md with comprehensive security policy 2026-07-29 12:50:45 +03:00
Trunk.toml feat(web): add SEO landing page 2026-08-22 09:33:38 +03:00
web-app.html feat(web): add SEO landing page 2026-08-22 09:33:38 +03:00

English · Български · Português (Brasil) · Čeština · Nederlands · Français · Suomi · Deutsch · Magyar · Italiano · 日本語 · 한국어 · Polski · Русский · 简体中文 · Español · 繁體中文 · Türkçe · हिन्दी · العربية

Open CAD Studio logo

Open CAD Studio

Open-source 2D drafting and 3D modeling for desktop and web, built with Rust.

Latest release Release downloads GitHub stars GPL-3.0 license

Launch the web app · Download the desktop app · Join the discussion

Open CAD Studio workspace

Overview

Open CAD Studio is a cross-platform application for technical drawing, layout work, and solid modeling. It reads and writes DWG and DXF drawings natively, with a shared editing core across the desktop and browser versions.

The project is under active development. Keep backups of important production drawings and report reproducible problems through GitHub Issues.

Highlights

  • Native drawing workflow — open, edit, recover, and save DWG and DXF files without a conversion service.
  • Precise 2D drafting — lines, polylines, curves, splines, hatches, object snaps, tracking, layers, blocks, and external references.
  • Documentation tools — text, dimensions, leaders, tolerances, tables, model space, paper space, viewports, and plot styles.
  • Kernel-backed 3D modeling — solid primitives, extrusion, revolution, sweep, loft, Boolean operations, and ACIS entity tessellation.
  • GPU rendering — accelerated 2D and 3D viewports through wgpu, with orthographic and perspective cameras.
  • Extensible workflows — native plugins, command scripts, headless conversion, and a line-based JSON automation API.

3D model in Open CAD Studio

File workflows

Format or workflow Support
DWG Read and write; versioned save targets from R14 through 2018
DXF Read and write; versioned save targets from R14 through 2018
BAK / SV$ Open drawing backups and autosave files
OBJ Import polygon meshes
LandXML Import CgPoint survey points
STL Export 3D mesh data
STEP AP203 Export 3D mesh data
PDF Plot layouts and selected geometry on desktop
CSV Extract entity property data
CTB / STB Load and edit plot style tables

Desktop or web

Use the web app for immediate access with no installation. Drawings are selected through the browser and saved as local downloads.

Use the desktop application for native file associations, file-manager thumbnails, system printing, PDF output, external plugins, command scripts, and headless automation. Release builds are available for Windows, Linux, and Apple Silicon macOS.

Install

Download all current packages from the latest release.

Windows

Choose one of these signed x86-64 packages:

  • OpenCADStudio-*-windows-x86_64-installer.msi — recommended installer with Start Menu shortcuts, DWG/DXF file associations, and drawing thumbnails.
  • OpenCADStudio-*-windows-x86_64-portable.exe — standalone application; no installation required.

Linux

Download the x86-64 AppImage, make it executable, and run it:

chmod +x OpenCADStudio-*-linux-x86_64.AppImage
./OpenCADStudio-*-linux-x86_64.AppImage

macOS

The published macOS package supports Apple Silicon:

  1. Download OpenCADStudio-*-macos-arm64.dmg.
  2. Open the image and drag OpenCADStudio.app into Applications.
  3. If Gatekeeper blocks the first launch, approve the app from System Settings → Privacy & Security.

The application is ad-hoc signed but is not currently notarized by Apple.

Languages

Open CAD Studio can follow the system language or use any of these 20 interface languages:

Arabic · Brazilian Portuguese · Bulgarian · Czech · Dutch · English · Finnish · French · German · Hindi · Hungarian · Italian · Japanese · Korean · Polish · Russian · Simplified Chinese · Spanish · Traditional Chinese · Turkish

Change the language from the application settings. The browser version also uses the browser's preferred locale when System is selected.

Build from source

Desktop

Requirements:

  • Git
  • Current stable Rust toolchain
  • Platform graphics and font development libraries

On Ubuntu or Debian, install the native dependencies with:

sudo apt update
sudo apt install libgl1-mesa-dev libx11-dev libxcursor-dev libxi-dev \
  libxrandr-dev libxkbcommon-dev libwayland-dev libfontconfig1-dev \
  libfreetype6-dev

Then build and run:

git clone https://github.com/HakanSeven12/OpenCADStudio.git
cd OpenCADStudio
cargo build --release --bin OpenCADStudio

The resulting binary is written to target/release/OpenCADStudio (OpenCADStudio.exe on Windows).

Web

Install the WebAssembly target and build tools once:

rustup target add wasm32-unknown-unknown
cargo install trunk wasm-bindgen-cli

Start the development server:

trunk serve

Automation

The desktop binary supports one-shot conversion and a persistent headless server:

OpenCADStudio --export input.dwg output.dxf
OpenCADStudio --serve
OpenCADStudio --serve --port 4242

The server exchanges one JSON object per line over standard input/output or a local TCP socket. See the automation guide and the included Python client.

Plugins

Desktop plugins run in separate processes and communicate with the host through the versioned plugin API. The browser build does not load native plugins.

Project documentation

Contributing

Bug reports, focused pull requests, translations, documentation improvements, and plugin contributions are welcome.

  • Search existing issues before opening a new report.
  • Use Discussions for questions and ideas.
  • Report vulnerabilities privately by following the security policy.

Project growth

Open CAD Studio stars and release downloads

Support the project

If Open CAD Studio helps your work, support continued development through GitHub Sponsors or Patreon.

License

Open CAD Studio is distributed under the GNU General Public License v3.0.