BlueMap - A 3d-map of your Minecraft worlds view-able in your browser using three.js (WebGL)

This is a discussion topic for the Ore project, BlueMap. View the full project on Ore for downloads and more information.


BlueMap is a tool that generates 3d-maps of your Minecraft worlds and displays them in your browser. Take a look at this demo. It is really easy to set up - almost plug-and-play - if you use the integrated web-server (optional).

This Sponge-Plugin automatically updates your map as soon as something changes in your world, as well as rendering newly generated terrain and managing the render-tasks.

BlueMap is currently in a really early development state!

The majority of features are still missing, and some blocks - especially tile-entities - will not render correctly/at all.
See below for a list of what is planned for future releases.

Getting started

BlueMap is mostly plug-and-play. Just install it like every other Sponge-Plugin and start your server. BlueMap will then generate a config-file for you in the ./config/bluemap/ folder. Here you can configure your maps and the webserver. The config has many useful comments in it, explaining everything :slight_smile:

Before BlueMap can render anything, it needs one more thing: resources! To render all the block-models, BlueMap makes use of the default minecraft-resources. Since they are property of mojang i can not include them in the plugin. Fortunately BlueMap can download them from mojangs servers for you, but you need to explicitly agree to this in the config! Simply change the accept-download: false setting to accept-download: true, and run the /bluemap reload command.

After downloading the resources, BlueMap will start updating the configured worlds. To render the whole world for a start, you can use this command /bluemap render [world].

Then, head over to http://<your-server-ip>:8100/ and you should see your map! (If there is only black, you might have to wait a little until BlueMap has rendered enough of the map. You can also try to zoom in: the hires-models are saved first)

If you need help with the setup i will be happy to help you!

Metrics and Webserver

Bluemap uses bStats and an own metrics-system and is hosting a web-server!

Metrics are really useful to keep track of how the plugin is used and helps me stay motivated! Please turn them on :slight_smile:

bStats: All data collected by bStats can be viewed here: https://bstats.org/plugin/sponge/BlueMap. bStats data-collection is controlled by the metrics-setting set in sponges configuration! (Turned off by default)

own metrics: Additionally to bStats, BlueMap is sending a super small report, containing only the implementation-name and the version of the BlueMap-plugin to my server (https://metrics.bluecolored.de/bluemap). I do this, because i might release some other implementations for BlueMap (like a CLI, or a forge-mod) that are not supported by bStats. Here is an example report:

{
    "implementation": "Sponge",
    "version": "0.0.0"
}

This data-collection is also controlled by the metrics-setting set in sponges configuration! (Turned off by default)

web-server: The web-server is a core-functionality of this plugin. It is enabled by default but can be disabled in the plugin-config. By default the web-server is bound to the standard ip-address on port 8100 and is hosting the content of the ./bluemap/web/-folder.

Commands and Permissions

command permission description
/bluemap bluemap.status displays BlueMaps render status
/bluemap reload bluemap.reload reloads all resources, configuration-files and the web-server
/bluemap pause bluemap.pause pauses all rendering
/bluemap resume bluemap.resume resumes all paused rendering
/bluemap render [world] bluemap.rendertask.create.world renders the whole world
[clickable command in /bluemap] bluemap.rendertask.prioritize prioritizes the clicked render-task
[clickable command in /bluemap] bluemap.rendertask.remove removes the clicked render-task

Resourcepacks

BlueMap tries to load every resourcepack it finds in the config/bluemap/resourcepacks-folder in alphabetical order.
Using resourcepacks is very unstable! Expect things to go wrong.
Also, currently only resourcepacks in 1.14-format will be loaded!

If you change resourcepacks you will very likely have to delete your web-data folder (bluemap/web/data by default) and completely re-render all your maps. You also might have to clear your browser cache ^^

Using the CLI

BlueMap can also be used without a Sponge-Server on the command-line. This also supports 1.13+ worlds!

Use java -jar bluemap.jar and BlueMap will generate a default config in the current working directory. You then can configure your maps and even the webserver as you wish. Then, re-run the command and BlueMap will render all the configured maps for you and start the webserver if you turned it on in the config.
To only run the webserver, just don’t define any maps in the config.

You can use -c <config-file> on the command-line to define a different configuration-file.

Todo / planned features

Here is an (surely incomplete) list of things that i want to include in future versions. (They are not in any specific order. There is no guarantee that any of those things will ever be included.)

  • render tile-entities (chests, etc…)
  • render entities
  • configurable markers / regions
  • marker / region API
  • free-flight-controls
  • live player positions
  • shaders for dynamic day/night
  • more configurations
  • better resource-pack support
  • mod-support (or an easy way for modders to do so themselves)
  • BlueMap as spigot plugin
  • BlueMap as forge mod
  • more render-tasks (commands to render parts of your world)
  • config to restrict map-generation to some bounds
  • ability to display the world-border

Issues / Suggestions

You found a bug, have another issue or a suggestion? Please create an issue on GitHub!

3 Likes

A new version has been released for BlueMap, it is available for download here.


Targets:

  • SpongeAPI: 7.1.0

Notes:

This is the first pre-release with absolute basic functionality and currently only as Sponge-Plugin.

Changelog:

–

1 Like

Just saw the demo and it seems pretty epic to me. Is this available for non Sponge too?

Not yet, but the CLI is almost ready to use… Give me a week or so ^^
With that you will be able to render any world-folder from the command-line or start the integrated web-server. The CLI will also support 1.13/1.14 worlds :slight_smile:

Just tried your demo, and especially for an alpha, this is a very cool plugin. So fast.

The biggest problem with world viewers or map generators I’ve had in the past (think: dynmap) is with custom blocks from other mods. Will this accurately display, say, ComputerCraft computers, etc?

Thanks.

Currently: no. :smiley:
In the future: depends on the mod and if the mod is supported…

Basically, to render a block BlueMap needs the full resource for that block, formatted like in a resource pack (…blockstates/block_id.json, …models/block/model_id.json, …/textures/block/texture_id.json) … and for 1.12 BlueMap also needs a mapping (like this) between the numeric block id and meta and the blockstate.

So for 1.13+ BlueMap might be able to extract all the information it needs from the mod.jar in the mods folder of the server if it includes those assets (computercraft does).
For 1.12 however the mapping will have to be added somehow to read those blocks correctly. I will probably add the possibility to configure that mappings in a config or similar.

Also, if the mod does something fancy with it’s blocks that is not represented in those resource-files, BlueMap will not (and most likely never) render that block correctly.

I hope that answers your question :slight_smile:

1 Like

Im gonna try it on my 1.12.2 server

1 Like

So i am very interested in this project! though i have a question.

I use multiple “worlds” as sort of “zones” for my players.
does this have multi/custom word support?

Yes! You can define as much maps for as much worlds as you like in the configuration file :slight_smile:
In the browser application you can then choose between the different maps with a drop-down menu.

1 Like

That is great to know!

Thank you :slight_smile:

1 Like

A new version has been released for BlueMap, it is available for download here.


Targets:

  • CLI
  • SpongeAPI: 7.1.0

Notes:

Added CLI-support! Render your 1.12-1.14 worlds simply from the command-line: java -jar BlueMap-0.1.0.jar.

Improved resource-loading. The SpongePlugin now loads it’s resources async to the server-thread so your server won’t freeze while reloading.

BlueMap also now loads resourcepacks from a specific folder. This is experimental, expect things to go wrong if you use a resourcepack! Also if you change resourcepacks you will very likely need to delete your web-data folder and re-render the whole maps!

Changelog:

  • Added CLI-support
  • Changed some config-keys (v0.0.0 configs should be compatible)
    • Moved web.data to web.web-data
    • Added data
  • Moved the scheduled tiles and tasks save-file to the folder defined by the new data config
  • Moved the downloaded client.jar to the folder defined by the new data config and renamed it to minecraft-client-1.14.4.jar
  • Moved loading the BlueMap-Sponge plugin off the server-thread
  • Fixed a bug where vines were always generated with the block-property top=true on 1.12 worlds
2 Likes

My resource pack is a 64x64 pack.
Is it compatible; and or will it have a large impact on performance?

For the map-rendering the resolution of the resource-pack has no impact on performance at all, except some more ram usage. In the browser there might be a performance impact, but i guess it’s not more than if you have high-resolution textures in minecraft.
If it is compatible i can not tell you, you’ll have to install it, render the map and see if it works.
Don’t forget to remove any existing renders and clear your browser cache if possible :slight_smile:
Since i am working on resourcepacks in this moment, you could also tell me what resource-pack you are using and ill try it myself ^^

1 Like

My resource pack is a custom pack that i am working on.
Here is the (very much incomplete) pack
https://github.com/hellbringer616/Strix-The-Realm/blob/master/Strix_Resource_Pack.zip

Aah, wait! Sorry! I completely forgot to mention that resource-packs currently have to be compatible with the Minecraft 1.14 format for resource-packs!
So this one will unfortunately not load right now… :slightly_frowning_face: sorry

Oh is this a 1.14 plugin??? I had no idea there was even a sponge for 1.14

No, there is no sponge for 1.14 yet, but BlueMap is already designed with 1.13+ in mind and made backwards-compatible for 1.12 worlds. That’s why a lot of things already work “the 1.13+” way. ^^

Good to know! I will be porting to 1.14 once my RPG-API (and Sponge of course) update; until then it’ll be default resources!

1 Like