Materializr
오픈소스 파라메트릭 3D CAD로 제약 스케치·솔리드 모델·나사·SVG·텍스트 조각·STL/STEP 내보내기를 지원합니다
브라우저에서 바로 사용하는 OpenStreetMap용 3D 건물 편집기, MapLibre와 three.js 기반, 백엔드 없이
Browser-based 3D building editor for OpenStreetMap (Simple 3D Buildings): MapLibre + three.js, no backend
디자인TypeScript · JavaScriptGitHub @FelisPimeja온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 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).