Open-source project
SlopeCraft/SlopeCraft avatar
SlopeCraft/SlopeCraft

SlopeCraft renders pixel art as terrain rather than as a flat image

Map pixel art generator for Minecraft.

773 stars32 forksC++GPL-3.0

At a glance

What is it?
SlopeCraft is a Qt and Eigen application that turns a pixel image into a Minecraft map painting, where the picture is drawn with blocks whose colours follow the terrain height, so the result is a three-dimensional structure rather than a flat sheet. It ships for Windows, macOS and Linux, and the surrounding libraries for compression, bridging and flow computation are separate repositories.
Who is it for?
Adopt SlopeCraft if you want to hang a picture in your Minecraft world as terrain and are willing to design for the medium, since the colour mapping is driven by block height and a flat image will not survive that translation unchanged. Skip it if you want a flat pixel-art image to paste into an item frame, since the tool deliberately optimises for the map view rather than the player view.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The map is a terrain structure, not a canvas

SlopeCraft is a piece of software for generating three-dimensional map paintings inside Minecraft, built on Qt, Eigen and zlib.

What makes it different from pixel art software like Spritecraft is stated in the documentation as a matter of purpose. SlopeCraft is a pixel art generator aimed specifically at maps, designed so that you record a pixel picture using a map and then paste it onto an item frame. The parenthetical matters: here a map means the in-game item that can record terrain, not a saved world.

That constraint changes everything about the colour handling. SlopeCraft's colour adjustment module is aimed entirely at the map. Its goal is not to make the pixel art look close to the original in the player's view, but to make it look close to the original in the map's view.

And because the colours in a map are tied to the relative height of the blocks, a map painting produced by SlopeCraft is usually not flat. It is a structure, artificial terrain, and the documentation calls this a three-dimensional map painting. The summary of the whole design is one line: SlopeCraft is made for maps.

The claimed consequence is quality. A picture made with SlopeCraft looks better than one exported from Spritecraft and then recorded with a map, and the reason given is the same as the reason for the design: because it is specialised.

Installing means picking the right archive for your platform

The installation procedure is a download and an unpack, with one archive per operating system, and the file names carry the platform and architecture.

Windows users download `SlopeCraft-x.x.x-win64.zip`, unzip it and run `SlopeCraft.exe`. macOS users download `SlopeCraft-x.x.x-mac.zip`, unzip it, drag `SlopeCraft.app` into the applications folder and run `SlopeCraft`. Linux users download `SlopeCraft-x.x.x-Linux.tar.xz`, unpack it and run `SlopeCraft`.

The `x.x.x` placeholder is the version number, for example `5.0.0`, and the downloads come from the release page linked at the top of the documentation.

There is a step before any of that, and it is the one most people skip. The documentation asks you to make sure you have read the FAQ and the usage tutorial before performing any operation, and the reason is not bureaucratic. A map painting is not a straightforward image export, because the colour of a block in a map is determined by its height, and the work of getting a picture to survive that translation is where most of the effort goes. Learning what the tool expects before you start saves the frustration of importing an image and getting a shape that does not resemble it.

The badges give the compatibility picture. The Minecraft range runs from 1.12 to 26.2, the licence is GPL-3.0, the language is C++ 23, the GUI framework is Qt 6.10, and the linear algebra library is Eigen 5.0.1.

The last push was on 2026-10-20, and the recent releases are v5.4.1 from 2026-08-13, v5.4.0 from 2026-08-03 and v5.3.3 from 2026-02-23.

The interesting code is split into paired C++ and C libraries

The repository layout is where the engineering structure of the project becomes visible, and it follows a pattern of paired directories.

There are SlopeCraft/ and SlopeCraftL/, VisualCraft/ and VisualCraftL/, and separately vccl/ and sccl/. The lowercase L directories are the library counterparts of the applications above them, and the two short-named directories hold the compression and colour mapping libraries. That pairing is a deliberate separation between the application and the reusable code inside it.

The supporting directories are as telling as the paired ones. Blocks_SCL/ holds the block definitions, MapViewer/ is a viewer for the generated output, imageCutter/ handles slicing the source image, utilities/ has shared helpers, and tests/ has the test suite. There is a py/ directory for Python tooling and a cmake/ directory for the CMake modules.

The build is CMake, with CMakeLists.txt at the root and a cpack/ directory for packaging, which matches the release archives being platform-specific rather than something produced by a single script. A .clang-format file at the root indicates the formatting convention the C++ code follows.

The documentation is built separately under docs/, and the documentation site itself is at slopecraft.rtfd.io, which is a Read the Docs deployment. There is a README-en.md alongside the Chinese README.md, so English documentation is a maintained artefact rather than a translation afterthought, and a license-translations/ directory holds the licence in other languages.

The supporting libraries are separate projects by the same author

The documentation lists five related repositories, and they are the pieces that make the main application work.

NBTWriter is a library for writing NBT files, which is the format Minecraft uses for its world and item data. The description is candid about its quality: it is self-written, relatively weak in features, and sufficient for its own needs.

SlopeCraftCompressLib is a lossless compression library, and it also carries the construction of the height matrix, which makes it more than a codec. It is the base for the next one.

SlopeCraftLossyCompression is a lossy compression library implemented on top of the lossless one. Having both in a chain is a sensible design for map data, where the height information has to survive exactly and the colour information can be approximated.

SlopeCraftGlassBuilder is the bridging library, for building the glass structure that the painting sits on. That is a separate project because it is a distinct problem from the image-to-terrain mapping.

HeuristicFlow is a genetic algorithm implementation, and its presence tells you something about the approach. When you have to choose how to place blocks so that a picture emerges under a height-based colour model, you are optimising, and a genetic algorithm is a plausible way to search that space.

The fact that these are separate repositories rather than subdirectories is worth noting. It means the compression and bridging logic can be used without the Qt application, and it means a bug in the compression library is fixed in its own project with its own release cycle. The trade-off is that a SlopeCraft user has to fetch several projects, and the version compatibility between them is not something the main repository controls.

Two document sets, because the tools do different jobs

The documentation is split across two tutorials and one principles document, and the split reflects two distinct tools.

There is a SlopeCraft tutorial and a VisualCraft tutorial, and VisualCraft has its own paired library directory in the repository tree. Whatever the difference in behaviour between the two, the project treats them as separate products with separate learning material rather than as modes of one thing.

The principles document, on the introduction to map painting, is the one to read if you want to understand the medium. The application documentation says the colour adjustment module is entirely oriented around the map rather than around the player view, and the reason can only be explained by the map's own rules: colours in a map correspond to the relative height of blocks. A document about those rules is therefore a prerequisite for using the tool well, not a nicety.

The FAQ is listed separately from the tutorials and is referenced twice in the installation section, once as a general FAQ and once as part of the instruction to read before operating the software. For a project whose output depends on a set of non-obvious constraints, that is the right emphasis.

There is also a compilation guide, for people who want to build SlopeCraft themselves rather than download a release. Given that the build needs C++ 23, Qt 6.10 and Eigen 5.0.1, and given the CMake and cpack setup, compiling from source is a reasonable expectation rather than an expert-only task.

Where this sits against general pixel art tools

The comparison the documentation itself draws is with Spritecraft, and it is worth taking seriously rather than reading as marketing.

General pixel art software treats the image as the artefact. You draw a 2D picture, export it as a PNG, and if you want it in Minecraft you paste it onto a map item in a frame. The result is a picture of the original as seen in the item frame, and it is limited by the resolution and colour palette of the map item.

SlopeCraft inverts that. It treats the map as the artefact and the picture as the input. The output is a built structure whose appearance in the map view is the target, and the tool's colour mapping exists to make that view resemble the original.

The difference shows up in the output geometry. A pasted image is flat, and a SlopeCraft painting is a terrain structure, because the map records height as well as colour. That is also why a SlopeCraft result is not the same thing as a flat picture, and why the documentation spends a paragraph explaining that the tool is not aiming at the player's view.

The practical trade-off is effort and dimension. A pasted image is instant and editable with any image editor. A SlopeCraft painting is a build, which means it occupies space in your world, it can be walked through, and it is the product of a tool that has to fit a 3D representation to a 2D source. For someone building a decorative map painting to hang in a hall, that extra work buys a result that is genuinely made of the world it sits in.

Editorial conclusion

Adopt SlopeCraft if you want to hang a picture in your Minecraft world as terrain and are willing to design for the medium, since the colour mapping is driven by block height and a flat image will not survive that translation unchanged. Skip it if you want a flat pixel-art image to paste into an item frame, since the tool deliberately optimises for the map view rather than the player view. Verify first which Minecraft version range you are targeting, that the release you download matches your platform archive, and that you read the FAQ and tutorial before starting, since the documentation asks you to do both before any operation.

Frequently asked questions

How do I install SlopeCraft?

Download the archive for your platform from the release page, then unpack and run it. Windows uses `SlopeCraft-x.x.x-win64.zip` and `SlopeCraft.exe`, macOS uses `SlopeCraft-x.x.x-mac.zip` and `SlopeCraft.app`, and Linux uses `SlopeCraft-x.x.x-Linux.tar.xz`. The documentation asks you to read the FAQ and the tutorial before any operation.

How is SlopeCraft different from Spritecraft?

SlopeCraft is a pixel art generator aimed specifically at maps, so its colour adjustment module optimises for the map's view rather than the player's view. Because map colours depend on the relative height of blocks, the result is usually a three-dimensional artificial terrain structure rather than a flat picture.

Which Minecraft versions does SlopeCraft support?

The compatibility badge covers Minecraft 1.12 through 26.2. The application itself is built with C++ 23, Qt 6.10 and Eigen 5.0.1, and there is a separate compilation guide for building it from source.

Official sources

  1. License: GPL-3.0
  2. Project website
  3. README
  4. Releases
  5. SlopeCraft/SlopeCraft on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/slopecraft-slopecraft.svg)](https://hysenlabs.com/projects/slopecraft-slopecraft)

Was this useful?