Materializr
開源參數式 3D CAD 給創客 — 受限草圖、實體建模、螺紋、SVG 與文字雕刻、STL/STEP 匯出。Android、iPad、Linux、Mac、Windows。Vibe 編碼。
AI 翻譯
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗English · Русский
A browser-based 3D building editor for OpenStreetMap, following the Simple 3D Buildings tagging scheme. It also works with OpenHistoricalMap and OpenGeofiction.
OpenGeofiction's API may return 403 to Chrome, Safari, or Edge requests from this editor. Its server currently exempts IPs recognized as having edited OGF; if access is refused, try Firefox or contact the OGF administrators. The editor shows the server's response when this happens.
Open the editor: https://felispimeja.github.io/osm-simple3d-editor/
Usage statistics (changesets, users, edited keys; updated daily): https://felispimeja.github.io/osm-simple3d-stats/
height, min_height, building:levels, building:min_level, roof:* and colours, with undo/redo and a before/after diff.type=building relations: create them and manage their members.The osm-open-simple3d.user.js userscript adds Simple3D Editor to the top menu on openstreetmap.org, immediately after About. Install it in Tampermonkey or another userscript manager. It opens a new tab with the current map position and zoom, or links directly to the object on way and relation pages (?edit=w123 / ?edit=r456). Node pages use the current map view. The menu also works when navigating without a full page reload.
The osmcha-open-simple3d.user.js userscript adds Simple3D Editor to the Open with menu on an OSMCha changeset page. Install it in Tampermonkey or another userscript manager and allow requests to api.openstreetmap.org. The script reads the changeset bounds from the OSM API and opens the editor with a #zoom/lat/lon link. If the changeset has no bounds, the item says the location is unavailable. On OpenHistoricalMap's OSMCha it reads the bounds from the OHM API (allow requests to www.openhistoricalmap.org) and opens the editor with OHM as the server (?server=ohm) at the date when most of the changed features exist (by start_date/end_date, buildings first; &date=), so the edits are visible.
Russian and English. The language is chosen in the settings panel; on first launch it follows the browser and system language
(Russian for ru, English otherwise).
UI strings are written in Russian in the code via tr('…') / trn(n, '…') (see src/i18n/index.ts) and serve as
translation keys. Dictionaries are flat JSON files in src/i18n/locales/: ru.json is generated from the code
with npm run i18n:extract, while en.json contains the English text. npm run i18n:check verifies that the English text is
complete, has no extra strings, and that {…} placeholders match. Strings with a number contain plural forms separated by |
(Russian: forms for 1, 2, 5; English: forms for 1 and other).
The Transifex project configured in .tx/config uses English as its source language and Russian, German, and French as target languages. Russian phrases remain the JSON keys; their English values in en.json are the Transifex source text. .tx/config maps the Editor interface resource to these files. Install the Transifex CLI and load TX_TOKEN from the ignored .env.local into your shell (set -a; . ./.env.local; set +a). After changing UI strings, run npm run i18n:extract, add the English text for any new keys to en.json, and check with npm run i18n:check. Then run tx push -s to upload English source text and tx push -t -l ru to upload the generated Russian translations. To review community translations, run tx pull -t -l de,fr, inspect the changed JSON files, and run npm run i18n:check. Never commit the token. To offer German or French in the app, also add the downloaded dictionary to src/i18n/index.ts and update its language list and locale handling.
npm install
npm run dev # local dev server (Vite)
npm run build # type check and production build
This project is developed with AI assistance. Most of the code, documentation and translations were written with Claude (Anthropic) via Claude Code, under the direction of the project maintainer, who designs the features, reviews and tests the changes, and is responsible for every commit. Commits made with AI help carry a Co-authored-by: Claude <[email protected]> trailer.
Edits uploaded to OpenStreetMap and other map projects with this editor are made by human mappers; the editor does not generate map data on its own.
The code is distributed under the ISC license. Map data is licensed by the respective projects (ODbL for OpenStreetMap and OpenHistoricalMap, its own license for OpenGeofiction).