Skip to content

mmiscool/BREP.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

691 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BREP.io is a browser-based CAD application and JavaScript kernel for feature-based solid modeling.
At its core is a BREP-style modeler with explicit geometry/topology objects such as Solid, Face, Edge, and Vertex, paired with an editable feature-history pipeline.
It also includes sketch workflows powered by a standalone 2D constraint solver, plus robust manifold booleans (manifold-3d), mesh repair/import tooling, assembly constraints, PMI annotations, and embeddable CAD/sketcher APIs.

This project is in active development and APIs may continue to evolve.

Screenshots

Home @280 Modeling Mode @280 Sketch Mode @280 PMI Mode @280 2D Sheets Mode @280 Image to Face 2D @280 Image to Face 3D @280

Documentation Index

General:

Core APIs:

System docs:

Mode guides:

Modeling Feature Docs

Feature index:

Primitives and setup:

Solid operations:

Pattern, import, and generation:

Assembly and sheet metal:

Additional implemented features in the codebase include collapse edge, edge smooth, offset face, overlap cleanup, sheet metal hem, and sheet metal cutout.

Assembly Constraints

PMI Annotation Docs

Quick Start

Prerequisites:

  • Node.js 18+
  • pnpm

Install and run locally:

pnpm install
pnpm dev

Then open the Vite URL shown in your terminal.

  • Main app shell: /index.html
  • Direct CAD workspace: /cad.html

Build, Test, and Utility Commands

Command Purpose
pnpm dev Prepares fonts, builds the kernel bundle, then runs the Vite dev server.
pnpm build Production build of the app into dist/ (includes kernel build step).
pnpm build:kernel Builds the ESM kernel bundle into dist-kernel/ and syncs assets.
pnpm test Runs the Node test suite (src/tests/tests.js), writing artifacts to tests/results/.
pnpm liveTesting Watches src/ and tests/ and reruns tests on change.
pnpm capture Captures docs/dialog screenshots.
pnpm generateLicenses Regenerates dependency and bundled-font license summaries.

Build outputs:

  • dist/: static web app (ready for CDN/web hosting)
  • dist-kernel/: published kernel bundle artifacts

Use as an NPM Package

Package name: brep-io-kernel (ESM-only).

Install:

pnpm add brep-io-kernel

Main imports:

import {
  BREP,
  PartHistory,
  AssemblyConstraintHistory,
  AssemblyConstraintRegistry,
  CadEmbed,
  Sketcher2DEmbed
} from "brep-io-kernel";

Subpath imports:

import { BREP } from "brep-io-kernel/BREP";
import { PartHistory } from "brep-io-kernel/PartHistory";
import { CadEmbed } from "brep-io-kernel/CAD";
import { Sketcher2DEmbed } from "brep-io-kernel/Sketcher2D";
import { ConstraintSolver, ConstraintEngine, constraints } from "brep-io-kernel/SketchSolver2D";

Node examples:

CLI helper:

npx brep-io-kernel
npx brep-io-kernel --host 127.0.0.1 --port 4173
npx brep-io-kernel --help

License helper APIs:

import { getPackageLicenseInfoString, getAllLicensesInfoString } from "brep-io-kernel";

console.log(getPackageLicenseInfoString()); // package license info
console.log(getAllLicensesInfoString());    // package + production dependencies

CommonJS note:

const { BREP } = await import("brep-io-kernel");

Repository Layout

  • src/BREP: core solid/kernel implementation
  • src/features: feature implementations and dialogs
  • src/assemblyConstraints: assembly solver and constraints
  • src/UI: CAD/sketcher UI and embedding bridges
  • docs/: markdown docs and screenshots
  • apiExamples/: standalone browser API demos
  • tests/ and src/tests/: test assets and test runner

Contributing

See CONTRIBUTING.md.

License

See LICENSE.md. This project uses a dual-licensing strategy managed by Autodrop3d LLC.

About

BREP kernel from scratch using triangle meshes with BREP type topology

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages