GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - NoteCAD/NoteCAD: Unity3d CAD system with C# Geometric Constraint Solver

BranchesTags
Open more actions menu

Latest commit

 

History

314 Commits
314 Commits

Folders and files

NameName
Last commit message
Last commit date
Assets
Assets
 
 
Logs
Logs
 
 
Packages
Packages
 
 
ProjectSettings
ProjectSettings
 
 
UserSettings
UserSettings
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
NoteCAD.Editor.csproj
NoteCAD.Editor.csproj
 
 
NoteCAD.csproj.user
NoteCAD.csproj.user
 
 
NoteCAD.sln
NoteCAD.sln
 
 
NoteCAD.userprefs
NoteCAD.userprefs
 
 
README.md
README.md
 
 

Repository files navigation

NoteCAD - C# Geometric Constraint Solver and CAD Sketcher

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


Features

Sketch Entities

  • Lines, arcs, circles, ellipses, elliptic arcs
  • Splines
  • Text and function curves
  • Offset entities

Geometric Constraints

  • 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

3D Features

  • Extrusion
  • Revolve
  • Mesh import

Import / Export

  • Import: DXF, STL, SolveSpace
  • Export: STL, G-code

Building Locally

Prerequisites

  • Unity 6 (version 6000.0.3f1 or compatible). Download Unity Hub from https://unity.com/download and install the matching Unity Editor version.
  • Git with Git LFS support.

Clone the Repository

The project uses Git submodules for external libraries. Clone with submodules in one step:

git clone --recurse-submodules https://github.com/NoteCAD/NoteCAD.git

If you have already cloned without submodules, initialise them afterwards:

git submodule update --init --recursive

Open in Unity

  1. Launch Unity Hub.
  2. Click Add → Add project from disk and select the cloned NoteCAD folder.
  3. Open the project. Unity will import all assets on the first launch (this may take a few minutes).
  4. In the Project window, open Assets/Scenes/NoteCAD.unity.
  5. Press Play to run the application inside the editor.

Build a Standalone / WebGL Binary

  1. Open File → Build Settings.
  2. Select your target platform (e.g. WebGL, Windows, Linux, macOS).
  3. Click Switch Platform if the target is not already active.
  4. Click Build (or Build And Run) and choose an output folder.

Project Structure

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

External Libraries (submodules)

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

Using NoteCAD as an External Package

NoteCAD can be integrated into other Unity 3D applications as a UPM (Unity Package Manager) package.

Adding the Package

  1. Open your Unity project.

  2. Open Window → Package Manager.

  3. Click the + button in the top-left corner and choose Add package from git URL….

  4. Enter the following URL and click Add:

    https://github.com/Evil-Spirit/NoteCADPro.git?path=/Assets
    
  5. Unity will download and import the NoteCAD package into your project.

Example Scene

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.


Contributing

Contributions, bug reports and feature requests are welcome. Please open an issue or submit a pull request on GitHub.

About

Unity3d CAD system with C# Geometric Constraint Solver

notecad.xyz

Topics

cadconstraint-solverdraftinggeometric-constraint-solverinverse-kinematicslineline-renderer

Resources

Readme
Activity
Custom properties

Stars

207 stars

Watchers

16 watching

Forks

59 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.