Skip to content
getnodaliaPublic

About

Early-stage CAD application built on CadCraft in Rust for 2D drafting, technical drawings, and DWG and DXF workflows.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1,607 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nodalia

Forja

Forja

A native CAD application for 2D drafting and DWG/DXF drawings, part of the Nodalia suite.

Version 0.1.0 Early stage Native Rust MIT OR Apache-2.0

Screenshots · What it does · Build · Agents · Status · Suite · License

Forja with an apartment floor plan open: grey walls, blue windows, green door swings, furniture outlines, yellow room names and a room schedule table, cyan dimensions; Tool Sets on the left, Layers and Properties on the right, the command line at the bottom
Apartment plan (examples/apartment.dxf): hatched walls, room labels, a table, a multileader and dimensions, all drawn with Forja's own commands.


Overview

Forja is the CAD application of Nodalia. You draft the way decades of habit expect: type L, click two points, type @5<45, press Enter. It opens and saves DXF and DWG, lays drawings out on paper, and plots them to PDF. It is written in Rust, with no Electron and no web view, and it wears Nodalia Design: rounded islands, bold icons and the suite's own window controls on Linux.

Important

Forja is at an early stage. The first release, 0.1.0, targets Linux. Expect rough edges, and keep a copy of drawings that matter.

Screenshots

A paper-space layout in Forja: a white sheet with a viewport showing the apartment plan at scale, the status bar showing the Layout1 tab and the PAPER toggle Forja in its light theme with a mounting bracket part drawing: front view with bolt holes, centre lines and dimensions, a hatched section view, notes and a title block
Layouts: paper space with viewports, page setups and plotting to PDF. Light theme: a two-view part drawing with centre lines, a section hatch and a title block.

What it does

  • The command line you know. Prompts with clickable keywords, AutoComplete, aliases, relative and polar input (@dx,dy, @d<a), direct distance entry, object snaps, polar tracking, ortho, window and crossing selection, grips, and Enter or right-click to repeat.
  • Drafting and editing. Lines, polylines, circles, arcs, rectangles, polygons, ellipses, splines, text and multiline text; move, copy, rotate, scale, mirror, stretch, offset, trim, extend, fillet, chamfer, arrays and more.
  • Annotation. Dimensions with full dimension styles that follow the geometry, multileaders, tables, hatches and gradients, blocks with attributes, TrueType fonts and a single-stroke drafting font of its own.
  • Layers and properties. A layers palette and manager, layer tools, and a properties palette that edits any selection.
  • Open files. DXF read and write, DWG open and save, PDF plotting, SVG and PNG export.
  • Layouts and plotting. Paper-space layouts, scaled and locked viewports, page setups.
  • Parametric drawing. Geometric and dimensional constraints that re-solve after every edit.
  • Many languages. English, Spanish and seventeen more interface languages, switched live (details).

The full, honest list of what works and what does not yet is in ROADMAP.md and docs/gaps.md.

Build and run

You need Rust 1.95 or later.

git clone https://github.com/danielmigueltejedor/forja.git
cd forja
cargo run --release -p forja -- --sample      # opens the sample drawing

Then type at the command line:

line 0,0 @10,0 @0,5 c          a closed triangle
circle 5,2 1                    a circle
zoom e                          zoom to the drawing

Forja keeps its settings and its log in ~/.config/forja/ on Linux.

Agents and the command line

Every menu item, tool and prompt is a command, so scripts and agents can do anything a person can:

forja-cli mcp                                    # MCP server on stdio
forja-cli info drawing.dxf                       # what is in a drawing
forja-cli convert drawing.dwg drawing.svg        # convert or export
forja-cli run --sample --script 'CIRCLE 22,3 1\n' --save out.dxf --export out.png

The desktop app also takes a JSON control channel (--control PORT). See docs/cli.md, docs/mcp.md and docs/control-protocol.md.

Project status

Area State
Drafting, editing, annotation Working; see ROADMAP.md
DXF and DWG Open and save; some entities are not kept yet (file-format-parity.md)
Nodalia Design interface Done: islands, NDL icons and dialogs, Linux window controls
Native window controls macOS and Windows keep the system's own
Installable packages 0.1.0 for Linux, about to be published

App icon

Nodalia app icons are black-and-white portraits of historical figures over the app colour. Forja's is Leonardo da Vinci, engineer and master of technical drawing. Provenance and licence are in assets/app-icon/.

The Nodalia suite

Forja is one of the applications of Nodalia, an independent software project developed in public by Daniel Miguel Tejedor.

License

MIT OR Apache-2.0. See LICENSE-MIT, LICENSE-APACHE and NOTICE. Every asset and its source is listed in ATTRIBUTION.md.

About

Early-stage CAD application built on CadCraft in Rust for 2D drafting, technical drawings, and DWG and DXF workflows.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages