Building “Structures”
The idea for Structures came from playing Hogwarts Legacy and from watching Minecraft YouTube channels with my kids. One channel features a character, Kipper, who builds Minecraft addons and then has his friends play through the game with his changes. Giant monsters are a common theme. Each episode usually has a scenario, story, or puzzle for the group to solve, and plenty of hijinks to keep the kids laughing.
The channel works as marketing for a large catalog of addons the group sells in the official Minecraft Marketplace. My kids have saved up and bought a few themselves.
But the idea of building a story inside the game is worth more than any single addon. When we play together, we often invent goals or quests, or trigger raids, to give the game a purpose beyond building or surviving. For the most part, though, we stay within the game’s preset rules.
World building and storytelling are where Hogwarts Legacy shines. One of its core mechanics is cinematic: an action your character takes transforms the world around you.
I wanted this mechanic in Minecraft.
I wanted to create something that felt like magic, and to make moments in the game that felt cinematic.
Imagine starting a game by finding a magic object. When you use it, the object disappears, and a cave of obsidian shimmers into existence around you, trapping you.
Or imagine an emerald that spawns a fenced pen around a mob or enemy.
Or a wand that makes a haunted castle appear, while the camera flies around it as it rises from the ground.
I had my motivation and inspiration. I also knew, from experience with excellent tools like Blockbench, that the experience needed to stay centered on the content, not the format. No one wants to deal with coordinate spaces, scripting, and all the cruft a working addon or pack ultimately needs.
I also wanted a 3D modeling experience built for large builds with huge numbers of blocks. I took notes from the pixel sprite tool Piskel and from screenshots of various voxel modeling apps.
The goals were:
- Make it easy to build large geometric structures (this is where the app’s name came from).
- Make the output feel magic, or cinematic, or both.
- Hide everything technical about building and installing addons.
I ended up with a pixel painter with a depth element (depth painting) and a 3D preview. I built tools for filled and outlined shapes, the ability to tunnel through models in erase mode, and a generous (nearly unlimited) undo and redo history.
Technical Challenges
Coordinates
The app has three separate 2D canvases and one BabylonJS surface for the 3D preview. Each one works in a slightly different coordinate space from its rendering space.
In a typical browser canvas, the top-left corner is (0, 0), so coordinates grow as you move down and to the right. That isn’t surprising, and it gets easy to work with after a while. But each 2D view looks at a slice of a 3D model, so “up”, “down”, “left”, and “right” mean something different for each slice.
To complicate things further, Minecraft’s 3D space uses a different coordinate system than BabylonJS. Y is “up” in one and “forward” in the other, and left and right depend on what you consider the “front”. Getting the textures oriented correctly was surprisingly difficult. Only my rough recreation of the logic for placing and joining stairs was harder.
Coordination
Each view sees and edits the same model from a different perspective. I wanted an action in one view to show up in real time in all the others.
To do this, I kept a single source of truth for the model. Every view derives from the raw model data, plus any pending or staged pieces. Data flows in one direction through the app, which let me isolate bottlenecks and optimize each one separately. For example, drawing a large shape in 2D only means painting flat squares, but the 3D view has far more to render. The 2D view never has to wait for the 3D render to catch up.
Try it
Structures is free, needs no login, and is open source under the MIT license. Build something in your browser, then export it as a Bedrock add-on or a Java data pack. In the game, use the special addon item, and your build animates into place around or in front of you, and the camera flies around (Bedrock only).
More about the app is on the Structures page.