Materializr
開源參數式 3D CAD 給創客 — 受限草圖、實體建模、螺紋、SVG 與文字雕刻、STL/STEP 匯出。Android、iPad、Linux、Mac、Windows。Vibe 編碼。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證3D Slicer For Browser (based on OrcaSlicer)
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A 3D-printing slicer that runs entirely in the browser — reverse-engineered from OrcaSlicer into a WASM kernel + npm packages. STL/OBJ/3MF/AMF/PLY in (STEP via a pluggable loader), G-code out; no server, no install. A slicer-written .3mf project restores its plate layout, settings and support/material painting, and multi-material printing works through per-extruder filament presets and facet painting with a real ported prime tower.檢視完整 README ↗A 3D-printing slicer that runs entirely in the browser — reverse-engineered from OrcaSlicer into a WASM kernel + npm packages. STL/OBJ/3MF/AMF/PLY in (STEP via a pluggable loader), G-code out; no server, no install. A slicer-written .3mf project restores its plate layout, settings and support/material painting, and multi-material printing works through per-extruder filament presets and facet painting with a real ported prime tower.
Resin printing is a second technology in the same kernel, routed by printer_technology. The support-point generator, support tree and pad are PrusaSlicer 2.9.6's own chain ported verbatim; the result previews in the same viewer with the pad-lifted layer frame and writes out as an .sl1 archive, which the viewer also reads back. What the port does not cover — hollowing, organic trees — fails with a typed capability error instead of an approximation.
Two packages, released as a locked pair (same version; three-slicer pins three-slicer-viewer exactly).
| Package | License | What it is |
|---|---|---|
three-slicer | AGPL | WASM slicing kernel SDK — FFF batch/streaming slice, SLA slice, worker protocol, settings mapping. Headless-capable (Node or browser), no three.js dependency |
three-slicer/data | AGPL | Extracted OrcaSlicer metadata: config schema, UI tree, toggle rules, invalidation map, and the printer/process/filament/resin preset catalogs |
three-slicer-viewer | MIT | React <Viewport/> — three.js scene, model import, GPU volumetric toolpath preview, G-code parsing, SLA preview and .sl1 import/export, Shadow DOM isolated. Displays and exports; slicing is a prop |
three-slicer-viewer/components | MIT | React <SettingsPanel/> — schema-driven settings form, props-only, Shadow DOM isolated |
Quick taste (slicer included — AGPL):
import { useState } from 'react'
import Viewport, { useSlicer } from 'three-slicer-viewer'
import SettingsPanel from 'three-slicer-viewer/components'
import { makeSlicerWorker } from 'three-slicer/client' // the WASM kernel's worker
import { bundledCatalog } from 'three-slicer/settings' // OrcaSlicer's vendor presets
import { schema, uiTree } from 'three-slicer/data' // upstream's labels and tab tree
import { makeCfg, disabledKeys } from 'three-slicer/toggle' // upstream's enable/disable rules
const slicer = (deps) => useSlicer({ ...deps, makeWorker: makeSlicerWorker }) // module-level: it is a hook
const toggle = { makeCfg, disabledKeys }
function App() {
const [settings, setSettings] = useState({}) // OrcaSlicer schema keys, sparse
return (<>
<Viewport slicer={slicer} catalog={bundledCatalog} settings={settings} setSettings={setSettings} />
<SettingsPanel schema={schema} uiTree={uiTree} toggle={toggle} settings={settings} setSettings={setSettings} />
</>)
}
Viewer only (MIT — model and G-code preview, no slicing, no AGPL in the tree):
import Viewport from 'three-slicer-viewer'
<Viewport files={files} settings={settings} setSettings={setSettings} />
Headless (no UI): const s = await createSlicer(); s.slice(stl, params), or s.sliceSla(stl, slaParams) for resin — see packages/README.md.
packages/ — the npm package three-slicer (AGPL): kernel SDK, extracted data, WASM kernel sources, and the wrappers that plug the kernel into the viewer. Self-contained: builds, tests, and runs without slicers/.viewer-package/ — the npm package three-slicer-viewer (MIT): the viewer, the settings panel, G-code parsing and the toolpath renderer. Mirrored to its own repository on every release.web/ — demo viewer app that consumes three-slicer through the workspace package name.slicers/ — untracked reference clones (each its own git remote): upstream OrcaSlicer at slicers/slicer (the extraction/porting source) and PrusaSlicer at slicers/PrusaSlicer (comparison only).# demo viewer (committed WASM — no emscripten needed)
cd web && make dev
# full gate: kernel invariants (FFF + SLA), the generated param table, the viewer's pure modules
npm test
# tarball independence gate (packs both packages, builds Node/Vite/Next consumers and a viewer-only one outside the repo)
bash packages/pack_check.sh
# release both packages in order (viewer first), sync the mirror, tag — DRY=1 to rehearse
make bump V=x.y.z && make publish
Development docs (demo app, stage-by-stage log, reverse-engineering guide, format specs): web/README.md, web/HISTORY.md, web/GUIDE.md, web/SPECS.md.
three-slicer is AGPL-3.0-or-later (LICENSE.txt) — derived from OrcaSlicer. AGPL extends to network
use: a web service embedding it must offer its source to its users.
three-slicer-viewer (viewer-package/) is MIT: the viewer, the settings form, G-code parsing and
toolpath rendering contain no upstream code (packages/PROVENANCE.md) and can go into
closed-source products. Only slicing itself, and the vendor presets, are AGPL. Which files may carry which license,
and why, is packages/PROVENANCE.md; a license-boundary test enforces the split.