Skip to content

Latest commit

 

History

History
64 lines (53 loc) · 2.7 KB

README.md

File metadata and controls

64 lines (53 loc) · 2.7 KB

cmmcore

⚠️ Warning:
This solution is in active development and far from complete, it does not implement a stable api and does not guarantee any backwards compatibility. Things can change. Use at your own risk.

The minimal, cutting-edge CAD engine.

Overview

Key Points

Build

Native

cmmcore is a header-only library and therefore does not need to be compiled into a static or dynamic library. You can still do this with meson, but it is not required. The files in the test directories demonstrate how to use cmmcore in your own native executables. To build them run :

make 

Cython/Python

cmmcore reveals declarations in .pxd files. Which makes it also a cython library that you can use in your cython projects. An example of such use can be found in ./examples/cython_extension directory.

WASM

cmmcore can be compiled into wasm using emscripten.

WASM buindings are not complete at the moment, a lot of work is needed to make them usable. The bindings currently contains a few working examples and will be extended in the future.

To build and run the wasm module, follow these steps:

  1. Make sure emscripten is installed and available in your environment

  2. Go to the ./wasm directory

    cd wasm
  3. Compile cmmcore.wasm and cmmcore.js:

    make
  4. Run file server

    python3 -m http.server

    You'll see something like this:

    Serving HTTP on :: port 8000 (http://[::]:8000/) ...
    
  5. In your browser, go to http://localhost:8000/index.html and open the browser console. In the browser console, you should see:

    Evaluated surface point: 0.386633295312500070.53927819546875010.3723660509375