NoteCAD is an open-source, parametric CAD application built on the Unity engine with a fully custom geometric constraint solver written in C#. The project was created from scratch — all source code is written in C#.
Try it online: http://NoteCAD.online
Licensing contacts: contact at notecad dot pro
- Lines, arcs, circles, ellipses, elliptic arcs
- Splines
- Text and function curves
- Offset entities
- Coincident points
- Horizontal / Vertical
- Parallel and Perpendicular
- Tangent
- Equal length / Equal value
- Fixed (Fixation)
- Point on entity
- Distance (point–point, point–line, point–circle, line–line, line–circle, circle–circle)
- Length and Diameter
- Angle
- Custom equation constraints
- Extrusion
- Revolve
- Mesh import
- Import: DXF, STL, SolveSpace
- Export: STL, G-code
- Unity 6 (version
6000.0.3f1or compatible). Download Unity Hub from https://unity.com/download and install the matching Unity Editor version. - Git with Git LFS support.
The project uses Git submodules for external libraries. Clone with submodules in one step:
git clone --recurse-submodules https://github.com/NoteCAD/NoteCAD.gitIf you have already cloned without submodules, initialise them afterwards:
git submodule update --init --recursive- Launch Unity Hub.
- Click Add → Add project from disk and select the cloned
NoteCADfolder. - Open the project. Unity will import all assets on the first launch (this may take a few minutes).
- In the Project window, open
Assets/Scenes/NoteCAD.unity. - Press Play to run the application inside the editor.
- Open File → Build Settings.
- Select your target platform (e.g. WebGL, Windows, Linux, macOS).
- Click Switch Platform if the target is not already active.
- Click Build (or Build And Run) and choose an output folder.
Assets/
Code/
Constraints/ # Geometric constraint implementations
Entities/ # Sketch entity types (line, arc, circle, …)
Features/ # 3D feature operations (extrude, revolve, …)
Solver/ # Algebraic constraint solver (Newton method)
Tools/ # Editor tools and UI actions
Behaviours/ # Unity MonoBehaviour helpers
Geometry/ # Core geometry utilities
External/ # Third-party libraries (git submodules)
Scenes/ # Unity scenes (NoteCAD, NoteCAM, SketchEditorExample)
Prefabs/ # UI and object prefabs
ProjectSettings/ # Unity project settings
| Library | Purpose |
|---|---|
| Csg | Constructive Solid Geometry |
| geometry3Sharp | 3D geometry algorithms |
| gsSlicer | 3D-printing slicer |
| gsGCode | G-code generation |
| netDxf | DXF file import/export |
| ACadSharp | Additional CAD file support |
| SharpFont | FreeType font rendering |
| UnityRuntimeInspector | In-app runtime inspector |
NoteCAD can be integrated into other Unity 3D applications as a UPM (Unity Package Manager) package.
-
Open your Unity project.
-
Open Window → Package Manager.
-
Click the + button in the top-left corner and choose Add package from git URL….
-
Enter the following URL and click Add:
https://github.com/Evil-Spirit/NoteCADPro.git?path=/Assets -
Unity will download and import the NoteCAD package into your project.
An example demonstrating how to embed the sketch editor is included in the package. After adding the package, copy to your project folder and open the following scene:
Packages/com.macroshape.notecad/Scenes/SketchEditorExample.unity
This scene shows the minimal setup required to use the NoteCAD sketch editor inside your own application.
Contributions, bug reports and feature requests are welcome. Please open an issue or submit a pull request on GitHub.