# CoreLinks CAD corresponding source for free Web0.7

Wrapper commit c2148e54b456b571238d35cac037d304053d64b2; OCCT commit d2abb6d844231cb8f29be6894440874a4700e4a5. Full acquired source trees are included with original notices and the identified CoreLinks CMake/C++ modifications. The release C++ marker is corelinks-free-512m-v1.

Toolchain used: Emscripten SDK3.1.69 release8fe01288bc35668c13316324336ea00195dfb814, CMake3.31.6, Ninja1.13.2 (Python package build), Python3.12 on Windows. Emscripten runtime/generator preferred source and its notices are a separate source download supplied alongside this archive. SDK compiler executables are build tools, not included here.

1. Obtain the official pinned emsdk3.1.69 driver. In a separate folder run python emsdk.py install 3.1.69 and python emsdk.py activate 3.1.69. Do not use --permanent or --system unless you intend to change your environment.
2. Install the declared CMake/Ninja tools or compatible ones; keep the SDK and build folder isolated. Node22+ and Python3.8+ are needed for the helper.
3. From this extracted archive root run: node build-tools/rebuild.mjs <absolute emsdk path> <absolute cmake executable> <absolute ninja executable>. Pass each path as a quoted argument if it contains spaces.
4. Generated JS/WASM are in build/Release. Link-time INITIAL_MEMORY29949952, MAXIMUM_MEMORY536870912 and DYNAMIC_EXECUTION0 are set in CMake. No binary memory patch or string-eval marshalling patch is needed. Unchanged OCCT headers are gathered into a reproducible flat include folder to avoid Windows command length limits.
5. To replace the library in your own local product source copy, run node tools/install-cad-runtime.mjs <absolute build/Release path> corelinks-free-512m-v1, or your own declared marker value, from the product root. The installer updates hashed files and release.json. Restart the local preview.
6. Modify C++ and rebuild. Marker is diagnostic only; library reader ABI, memory safety and CSP constraints are documented. You may edit the supplied product source as needed for your own local use and modified-library debugging.

Actual build verification: baseWASM 6c704857e662d2634f83dbc73a569be04418901ca1ae925c872ed267b6e3d3ef; modified-C++WASM39b5c86e99093b88644b0da96fc3cfa7c8175ce5baee865a2aee4890170814a1. Current base imported mathematical STEP/IGES fixtures and enforced512MiB. The modified-C++ hash refers to the earlier128MiB checkpoint; its marker replacement was observed from C++ in the browser. Browser capacity verification is supplied separately. No byte-identical rebuild on another machine is asserted.

Preserve LGPL2.1 wrapper/kernel notices and OCCT's header exception. Read the separate product terms, OSS notices and Emscripten notices. Changed files: CMakeLists.txt (minimum3.13, portable header include, non-JITJS/memory settings, legacy switch removed), js-interface.cpp (diagnostic C++ marker), generated flat-header manifest/helper. Dates2026-10-13. Full kernel source is unchanged.
