Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

IngeTrazo

Pronounced EEN-heh-TRAH-soh — from Spanish inge(niería) "engineering" + trazo "a drawn stroke": the engineer's stroke.

A free 3D modeler for architecture, engineering and 3D design — draw as if by hand, built natively for Linux.

License: GPL-3.0-or-later Status: usable Platform: Linux · Windows · macOS Made in Peru

IngeTrazo brings push/pull modeling to Linux — where there is almost no native CAD for civil engineers and architects, and for anyone who designs in 3D (furniture, objects, scenes, models). It is freeform at the core (draw anything, like sketching by hand) with an optional BIM tagging layer planned on top: mark geometry as IfcWall / IfcSlab / IfcColumn, export to IFC, and close the loop model → tag → quantity takeoff → budget with its sister project IngePresupuestos.

IngeTrazo viewport

The name is the thesis: trazar — to trace, as you would by hand.

Status

Usable — real work gets done in it today. Draw, extrude, edit, paint, dimension and annotate; open .skp files from 2013 to 2026; tag BIM classes and export IFC quantities; georeference and import survey data. IngeTrazo is developed by dogfooding on real engineering projects, backed by ~2,000 automated tests, and its geometry engine refuses to commit a broken solid (the hermeticity guard) — your quantities stay honest. It is still a 0.x: the file format and plugin API may evolve between minor versions, and rough edges exist — please report them.

Install

Grab the latest release:

  • Windows: the -setup- installer (or the portable .zip).
  • Linux (x86_64): the Flatpak, from our repository — this is the one that keeps itself current, because flatpak update has somewhere to look. It lands in your applications menu with .igz/.skp associated.
flatpak remote-add --user --if-not-exists ingetrazo https://ingetrazo.com/ingetrazo.flatpakrepo
flatpak install --user ingetrazo com.ingetrazo.IngeTrazo
flatpak run com.ingetrazo.IngeTrazo

The release also carries a single-file IngeTrazo.flatpak you can double-click, but a bundle has no update channel — it stays on the version you installed. Or take the AppImage (make it executable and run it), or the tarball if your distro lacks FUSE:

chmod +x IngeTrazo-*-x86_64.AppImage && ./IngeTrazo-*-x86_64.AppImage
# or
tar -xzf IngeTrazo-*-linux-x86_64.tar.gz && IngeTrazo-*/ingetrazo

Python, Qt and the pure-Python .skp reader travel inside; nothing else to install. --check prints what the install found and exits non-zero if anything is missing.

  • macOS (Apple Silicon, M1 and later): download IngeTrazo-<version>-macos-arm64.dmg from the latest release, open it and drag IngeTrazo to Applications. The app is not signed yet, so the first time right-click it ▸ Open. Known gap on macOS: DWG import (dwg2dxf is Linux-only for now); the native .skp reader works everywhere. If something fails, please open an issue and paste anything the Terminal prints.

Something to open right away: examples/ holds four real documents from the Yanque plaza project — the fountain, the bench with its pergola and the solar lamp post with their A3 sheets and PDFs, and the welcome arch with all its rebar (also attached to every release as IngeTrazo-ejemplos.zip).

What works today

  • Viewport — Z-up camera that orbits around the point under the cursor, grid, colored axes, perspective ↔ parallel and two-point perspective, standard views, zoom-extents, hidden-line removal, real-sun shadows.
  • Walkthrough — Position Camera, Walk and Look Around at eye height.
  • Drawing tools — Line, Rectangle, Rotated Rectangle, Circle, Polygon, Arc (2-point) and 3-Point Arc, with inferencing, snapping, axis locks and a Value Control Box (type exact lengths/coordinates, 200,100 or 200;100 for two values), plus Freehand, Pie, 3D Text and images. Repeat the last command with Shift+R or from the right-click menu.
  • Push/Pull — robust, watertight extrude / recess / step / through-hole, solid-aware, with a BIM-grade hermeticity guard (never commits a broken solid — the difference that makes the geometry valid for quantity takeoff).
  • Offset — walls with real thickness from a face outline.
  • Follow Me and Fillet — sweep a profile along a path; round a corner.
  • Move, Scale, Flip — with snap, inference and exact measured input.
  • Tape Measure & guides — guide points and lines that every tool snaps to, Push/Pull included (stop a face exactly at a guide's height).
  • Eraser, Hide/Unhide, Invert Selection, Intersect Faces.
  • Solid tools — Outer Shell, Union, Subtract, Trim, Intersect, Split.
  • Section planes — live cuts with section fill.
  • Groups & components — isolate geometry, move / explode / edit as a unit, and copy/paste with a solid, textured preview under the cursor; pasted component copies share their definition. Paste in Place (Ctrl+Alt+V) drops the copy exactly where it was taken — the way to move things into and out of groups without shifting them.
  • Rotate & Protractor — plane inference with axis-coloured disc, 15° tick snapping near it, slope input as rise:run (3:12), rotate-a-copy (Ctrl), fold-axis by dragging, and angled guide lines that feed the snap engine; a click snapped to a point rotates by the exact angle to it.
  • Display styles — Default, Architectural (textures on white), Shaded, Hidden line, Monochrome, Wireframe and X-ray; scenes remember their style and the sheet composer renders each viewport in any of them.
  • Curved solids — soft edges: smooth cylinders, curved-surface selection, view-dependent profile/silhouette edges.
  • Materials — solid color per face and textures (planar projection with real-world tile size), applied with a Paint tool — with a named material registry: paint keeps identity, edit-and-restamp updates every use, Model Info reports quantities per material, and exports carry the real names.
  • Dimensions & leader texts — static annotations with hidden-line occlusion and styles; texts select by their glyphs, move with the anchor pinned, and edit on double-click. Both come in from .skp files.
  • Side tray — Entity info, Layers, Scenes, Materials (213 RAL colours and a textured library at real size), Components (scale figures, furniture, trees, vehicles, your own face-me PNGs), Dimension style.
  • .skp import — open .skp files natively (double-click too), every era from classic 2013–2020 to current 2021+, with materials, textures, per-side face materials, translucency, layers, scenes, dimensions and leader texts. Pure Python and offline — powered by OpenSKP (see Acknowledgements). There is no .skp export: to take a model to another program, export COLLADA .dae, OBJ or glTF.
  • Files — native .igz save/open (self-contained: textures travel inside the document), import STL (with principal-plane or advanced all-surface coplanar merging), OBJ and COLLADA .dae, export STL, OBJ, COLLADA and glTF/GLB (glTF with PBR materials and geolocation; STL goes to a slicer as is — dedicated 3D-printing tools are planned for the future).
  • Layers & Scenes — visibility/lock tags (plans emerge from one model) and saved views (camera + per-layer visibility), both imported from .skp.
  • BIM tagging + IFC export — tag freeform geometry with IFC classes (walls, slabs, columns, ...); tagged objects export to .ifc with honest quantities (areas always; volumes only when the object is watertight) — the bridge to IngePresupuestos quantity takeoff.
  • Geo-referencing — UTM datum, web basemap tiles, 3D terrain (DEM), traced geo-paths with a live longitudinal profile, survey-point CSV import (total station / GPS), and photogrammetric mesh import (WebODM / ODM).
  • Sheet composer — scaled viewports of the model on paper sheets (each in any display style), exact vector hidden-line rendering with three pen weights and section poché, numbered view titles, section marks (where «Corte A-A» was taken), model-anchored dimensions (chains with a stacked total, level marks that read the point's height), detail callouts, title block, vector PDF export, DXF with one layer per line class.
  • Extensions — a plugin system: drop a Python file in the plugins folder and its tools appear in the Extensions menu. Reference plugins ship with the app: Model Info (model statistics), a Python Console (live scripting over the open document, undo-integrated), Solid Inspector, and two AI plugins — an in-app AI Assistant (chat that models for you; Groq/Claude/GPT/Gemini/OpenRouter/DeepSeek/local Ollama) and an AI Bridge (drive the live document from Claude Code/Desktop via MCP). Every AI action is one transactional undo step. A broken plugin can never prevent IngeTrazo from starting. Plugins are the lowest-friction way to contribute — see docs/plugins.md.
  • Undo/redo — every edit is a single atomic step (console scripts included).

Sheet composer: a real ornamental-fountain sheet — front view, 3D, plan and section at 1:40, with dimensions, labels, a reference photo and the title block

Planned

Contour lines from terrain · reference axes, room labels and numbered legends on sheets · DWG/DXF (with IngeCAD) · IFC import · extension manager UI · Flathub packaging.

Why IngeTrazo

There was no good native 3D modeller for the civil engineer who works on Linux: the usual tools have no Linux build, or are hard to learn. IngeTrazo is that missing tool: Linux-first, in Spanish, free software, and designed around the real workflow of tracing over a georeferenced site and tagging what you draw for takeoff.

Stack

Deliberately minimal — heavy dependencies arrive only when a feature needs them.

LayerWhat we use
UIPySide6 6.11 (Qt 6) — the only runtime dependency
3D renderingQt's bundled OpenGL (QOpenGLShaderProgram / QOpenGLBuffer / VAO), GLSL 3.30 Core
3D mathQMatrix4x4 / QVector3D (QtGui) — no NumPy
Vertex packingarray (Python stdlib)
Snapping / inferencecustom (core/snap.py)
Testspytest

Quick start (developers)

git clone https://github.com/ingelibre/ingetrazo.git
cd ingetrazo
python3 -m venv venv
source venv/bin/activate          # Linux / macOS
# .\venv\Scripts\activate         # Windows
pip install -r requirements.txt
python main.py

Developed on Python 3.14 (3.11+ should work). Run the tests with python -m pytest -q.

Contributing

Contributors from anywhere are welcome. See CONTRIBUTING.md and CODE_OF_CONDUCT.md. All code, comments and commit messages are in English; the UI speaks Spanish, English, Brazilian Portuguese, Simplified Chinese and Italian (translations are one JSON file each under i18n/).

Acknowledgements

  • Pedro Caeiro — architectural and mechanical draftsman, and IngeTrazo's most persistent outside contributor: five merged pull requests and fifteen issues filed from real drafting work. He draws with IngeTrazo every day and writes down every gesture that does not answer the way a draftsman expects, which is how much of its everyday behaviour got polished. See AUTHORS.
  • Rafael García Rodríguez — Rafael 3D, draftsman and reviewer. His filmed reviews put the program through a professional's hands and drove the sheet composer; his tutorial on drafting standards, with a reference plate drawn in AutoCAD, is the specification IngeTrazo's dimensions are being built to. A CAD program that does not meet the drafting norms is not a technical tool, and that is knowledge we did not have.
  • OpenSKP (MIT) by Ahsan Mehmood — the clean-room, pure-Python .skp reader that powers IngeTrazo's native import. IngeTrazo contributes back upstream: material and texture fidelity, per-face UV mapping, image entities, style colors, back-side materials, edge display flags, and a full reader for the classic pre-2021 MFC container format. If you need to read .skp files from Python, use OpenSKP — and give it a star.
  • dafrobozao — the Brazilian Portuguese translation of the interface (#54), IngeTrazo's third language.
  • liuandy — the Simplified Chinese translation of the interface (#123), IngeTrazo's fourth language.
  • deedend — the Italian translation of the interface (#182), IngeTrazo's fifth language.

License

GPL-3.0-or-later — the same copyleft family as Blender, FreeCAD and PrusaSlicer. You are free to use, study, modify and redistribute IngeTrazo, provided derivative works stay under the same license.

Author

Marco Sumari Tellez — Civil Engineer, Arequipa, Peru. See AUTHORS.


En español

IngeTrazo (se lee in-je-TRA-so: ingeniería + trazo) es un modelador 3D libre para arquitectura, ingeniería y diseño 3D, hecho nativo para Linux — donde casi no hay CAD para nuestra carrera ni para quien diseña en 3D. Es freeform en el núcleo (trazás lo que quieras, como dibujando a mano) con una capa BIM opcional planeada encima: taggeás la geometría como IfcWall / IfcSlab / IfcColumn, exportás a IFC y cerrás el loop modelar → taggear → metrar → presupuestar junto a IngePresupuestos.

Ya funciona de punta a punta: dibujás (línea, rectángulo, círculo, arco, polígono), extruís con push/pull hermético grado-BIM, hacés muros con espesor (offset), movés, agrupás, pintás con colores y texturas, acotás, y exportás a STL/OBJ. Abre archivos .skp de forma nativa (con doble clic), de cualquier época (clásico 2013–2020 y actual 2021+), gracias a OpenSKP. En desarrollo temprano, respaldado por ~870 tests. Software libre GPL-3.0, hecho en Perú. Más en docs/.


IngeTrazo is an independent project, written from scratch and not affiliated with any other software vendor; the file formats it reads belong to their respective owners. IngeTrazo es un proyecto independiente, escrito desde cero y sin relación con otros fabricantes de software; los formatos de archivo que lee pertenecen a sus respectivos dueños.

关于 About

Traza como a mano: modelador 3D libre para arquitectura, ingeniería y diseño 3D. Linux, Windows y macOS. BIM e IFC con IngePresupuestos. Abre archivos .skp.

语言 Languages

Python99.4%
Shell0.3%
GLSL0.2%
Inno Setup0.1%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
1281
Total Commits
峰值: 241次/周
Less
More

核心贡献者 Contributors