Materializr
開源參數式 3D CAD 給創客 — 受限草圖、實體建模、螺紋、SVG 與文字雕刻、STL/STEP 匯出。Android、iPad、Linux、Mac、Windows。Vibe 編碼。
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A simple, privacy-friendly passport photo maker that runs entirely in the browser.
If it's useful to you, a ⭐ on the repo helps other people find it.檢視完整 README ↗A simple, privacy-friendly passport photo maker that runs entirely in the browser.
If it's useful to you, a ⭐ on the repo helps other people find it.
What it does:
Try it: https://passport-maker-ten.vercel.app/
Every country also has its own page, e.g. /passport-photo/india or /passport-photo/united-states, which opens the tool preset to that country and sets out its published requirements.
Everything is client-side. The matting model is served from this site rather than a third-party CDN, so no request describing your photo is made to anyone.
The matting model and its runtime are fetched the first time you remove a background — about 16MB, then cached by the browser. Nothing is downloaded for the crop-only path.
utils/presets.ts)The cut-out comes from MODNet (utils/modnet.ts), a portrait matting model that predicts
alpha directly. It runs locally through ONNX Runtime Web at 512px on the short edge.
This replaced a selfie-segmentation mask plus a lot of colour reasoning, which failed in two opposite ways that no amount of tuning could fix, because colour alone cannot tell them apart:
A model that understands people has no such trouble. utils/matting.ts is now only a
finishing pass over the predicted alpha — it resamples onto the output grid, sharpens the
edge along real image edges with a guided filter, and unmixes the old background colour out
of semi-transparent pixels so pale hair keeps no rim of the room it was shot in. None of
those steps can add or remove a region.
Notes:
This tool is browser-only:
If you want “offline / self-hosted models” later, see the notes in the “MediaPipe models” section below.
npm install
npm run dev
npm run build
build runs vite build and then scripts/prerender.mjs, which writes one static page per
country under dist/passport-photo/<slug>/ plus dist/sitemap.xml. Each page carries its
own title, description, canonical URL, JSON-LD and a visible requirements table, generated
from src/utils/presets.ts — a query parameter on a single client-rendered page cannot be
indexed as 53 separate pages, and the per-country specs are the most searched-for thing
here. Set SITE_URL to override the absolute URLs:
SITE_URL=https://your-domain.example npm run build
public/og.png is the 1200×630 card that WhatsApp, Slack, Twitter, Reddit and iMessage show
when someone shares a link; without it a shared link renders as a bare grey URL. To
regenerate it, open scripts/og-card.html in a browser, press Download og.png, and move
the file to public/og.png. The card is drawn in canvas rather than kept as a binary, so it
can be re-cut when the wording changes.
MIT — see LICENSE. Use it, fork it, ship it, charge for it; just keep the copyright notice.
That covers the code in this repository. The things it depends on carry their own terms, and two are worth knowing about before you build a product on this:
public/models/modnet.onnx) — the matting network. The MODNet source is
Apache-2.0, but the officially published pretrained weights are released under
CC BY-NC-SA 4.0, which is non-commercial. If you intend to use this commercially,
confirm the provenance of the weights you are shipping and retrain or substitute if
needed.The country specifications in src/utils/presets.ts are transcriptions of published
government requirements. They are provided as a convenience and are not legal advice —
rules change, and the authority's own guidance is always the authority.