Skip to main content
{{ tabstripCount }}
{{ heroBadge }}

Your Minecraft world, rendered into a 3D map.

{{ heroYue }}

A from-scratch TypeScript port of BlueMap, the Minecraft world renderer and 3D web map.

Render from a desktop application, or from a GitHub Actions run with nothing installed at all, and browse it in an interface rebuilt from the ground up in Material Design 3.

This build of the site did not find a published release with a verified installer attached, so it offers no download. Nothing here guesses a URL.

Windows only, and permanently unsigned by choice — SmartScreen will warn. Rendering needs Java, which the app fetches into its own folder.

Which renderer runs today, in one sentence

A world you render locally is rendered by upstream BlueMap's own Java engine, built from the vendored source and driven by the application as a child process. The TypeScript mesher this project exists to write passed its byte-comparison parity gate on 2026-08-04 and still does not render anything in the product. Every render records which engine produced it.

The size of it

A port of a renderer is not one file, and none of these numbers are marketing. Each one is countable from the repository, and the line beneath it says where.

{{ stat.value }}
{{ stat.label }}
{{ stat.detail }}

What it does

Every row is built, unit tested and reachable by clicking. Each links the article that states its behaviour, configuration, failure modes and verification.

New here? Start with this

Everything above assumes some BlueMap vocabulary already. This does not.

  1. {{ step.n }} {{ step.text }}

Two engines, one of them running

Laid out side by side so nobody has to infer which is which.

Renders today

Upstream BlueMap's Java engine

Built from the vendored source and driven by the app as a child process, so a world can be rendered now rather than after the port finishes.

Parity passed · not switched on

The TypeScript mesher

961 of 961 hires tiles equal byte for byte, all 24 lowres tiles equal pixel for pixel, on 2026-08-04. Switching over is a separate change with its own verification.

Phase status

{{ ph.id }} {{ ph.label }} {{ ph.status }}

The application, actually running

Captures taken by the project's own harness in continuous integration, not mockups.

{{ s.caption }}

Six actions, shown

Finite walkthrough animations with static reduced-motion fallbacks. They are explanatory media, not deployment proof.

Latest release

No verified release for this build
{{ r.tag }} {{ r.text }}
This build of the site did not find a published release with a verified installer attached, so it offers no download. Nothing here guesses a URL.
{{ l.title }} {{ l.body }}

Documentation

An article for every feature, covering behaviour, configuration, failure modes, security considerations and verification. {{ articleTotal }} articles, straight from the repository's own docs/ folder.

{{ docsCount }}

{{ cat.label }}

{{ cat.count }} articles

{{ cat.lede }}

{{ articleTitle }}

{{ articleSectionCount }} sections {{ articleSource }}

{{ articleLede }}

{{ b.text }}

{{ b.text }}

{{ b.text }}
  • {{ item.text }}
  1. {{ item.text }}
Loading this article from the repository's documentation…

Screenshots

Captures of the real running application, taken by the project's harness in continuous integration. Nothing here is a mockup or a redraw.

{{ shotsCount }}

{{ shotsSummary }}

{{ shotsEmpty }}

{{ g.label }}

{{ g.description }}

{{ s.title }}
{{ s.caption }}
{{ s.theme }}{{ s.viewport }}{{ s.capturedAt }}
Recorded state and provenance

{{ s.state }} {{ s.commit }}

Settings

Every setting is declared once, searchable, exportable and resettable. Six groups; open one to get a focused page rather than a wall of controls.

{{ settingsCount }}

{{ groupTitle }}

{{ groupDesc }}

{{ sec.title }}

{{ row.label }}
{{ row.desc }}
{{ row.valueLabel }}
{{ appearanceCount }}

Per-element editors

Search

{{ searchCount }}

Changelog

Every entry is one commit, carrying the full SHA so the claim can be checked. Entries are grouped by the area of the repository they changed — never inferred as feature or fix.

{{ changelogCount }}

{{ rel.version }}

{{ rel.date }} {{ rel.chip }}

{{ grp.area }}

{{ c.subject }} {{ c.sha }}

Notifications

History only — this surface never interrupts. Toasts appear at the corner of the running application; what they said is kept here.

{{ notifCount }}
{{ n.title }} {{ n.time }}
{{ n.body }}
HTTP 404

That page is not in this build.

The site ships every article it links, so a missing page means the address was typed, guessed or came from an older deployment. Nothing was fetched from anywhere else to find it.

Every executable dependency, style, screenshot and animation is served locally. React and ReactDOM are vendored with their licences; there is no CDN, analytics, advertising, tracking pixel or runtime network fallback.
Regular expression builder
{{ builderScopeLabel }}
/ /{{ builderFlagString }}
{{ builderFeedback }}
New to regular expressions?
A pattern is a description of the text you are looking for. Ordinary letters match themselves — typing render finds the word render. The buttons below add the pieces that mean more than themselves: ^ means “at the start”, \d means “any digit”, and | means “or”. Every piece you add is explained in plain words further down.
Flags — how the whole pattern is applied
Insert a piece — each one says what it means
Clicking one drops it where your cursor is. Select some text first and a group will wrap it.
{{ tg.label }}
{{ tg.lede }}
Transform what you have already typed
These rewrite the whole pattern rather than inserting into it.
Fields this builder searches
What this pattern says
{{ ex.token }} {{ ex.meaning }}
Test string
Matches in the test string {{ builderMatchCount }}
@{{ m.index }} {{ m.text }} {{ m.groups }}
No match in the test string.
Live result on this page · {{ builderLiveCount }}
{{ builderLiveAnnouncement }}
{{ h.label }}
Nothing on this page matches yet.
Presets for this field
Saved patterns
Nothing saved yet. Saved patterns stay in this page session only.
{{ builderStatus }}
Nothing matches “{{ paletteQuery }}”. Change the query or open the adjacent regular expression builder.
{{ zoomCaption }}
{{ zoomPercentLabel }}
{{ zoomImgAlt }}
Scroll or pinch to zoom · drag to pan · +/− and the arrow keys work too · Esc to close碌滑鼠或用兩指縮放 · 拖曳郁地圖 · +/− 掣同方向鍵都得 · 撳 Esc 閂咗佢