Home & Introduction
Relevant source files
The following files were used as context for generating this wiki page:
HoloPrint is a specialized web application designed to convert Minecraft Bedrock Edition (MCBE) structure files (.mcstructure) into resource packs (.mcpack) that render 3D holograms of builds within the game world. This tool serves as a Bedrock-compatible alternative to Java Edition mods such as Litematica and Schematica, enabling users to place an armor stand and project a "ghost" template of a building for easy recreation.
Sources: README.md:1-10, src/translations/en_US.json:1-10
System Overview
The HoloPrint system architecture is comprised of a browser-based frontend that processes Minecraft data locally. It allows users to upload structure files directly, extract them from world files, or update existing HoloPrint/Structura packs. The core logic handles NBT parsing, block geometry generation, texture atlas creation, and resource pack assembly into a downloadable ZIP-based .mcpack.
Sources: src/HoloPrint.js:63-100, src/index.js:77-120
Key Components
The following diagram illustrates the high-level data flow from user input to the final generated resource pack:
The diagram shows how user-provided files are parsed and processed by specialized modules before being bundled into a resource pack.
Sources: src/HoloPrint.js:63-95, src/index.js:510-550
Core Functionality
1. Pack Generation
The primary entry point for the application is the makePack function. It orchestrates the transformation of block data into Minecraft-compatible geometry files. This process involves:
- Palette Tweaking: Removing ignored blocks and updating block versions.
- Geometry Generation: Creating
poly_meshtemplates for blocks. - Texture Mapping: Building a texture atlas and resolving UV coordinates.
- Animation: Adding spawn animations and layer-switching logic.
Sources: src/HoloPrint.js:63-180, src/HoloPrint.js:435-500
2. 3D Previewing
Before generating the pack, the PreviewRenderer utilizing three.js provides an interactive 3D visualization. It renders the structure with lighting and shadow support to allow users to verify their build before downloading.
Sources: src/PreviewRenderer.js:23-70, src/index.js:560-580
3. In-Game Controls
Generated packs use item-based interactions to control the hologram. Users can toggle rendering, change opacity, rotate the structure, and switch between individual layers or "all below" modes using standard Minecraft items.
Sources: README.md:30-55, src/HoloPrint.js:29-53
Configuration Options
HoloPrint offers extensive customization through its web interface. Below is a summary of the primary configuration settings available to the user:
| Category | Option | Description |
|---|---|---|
| General | Ghost Block Scale | Adjusts the size of the hologram blocks (default 95%). |
| General | Opacity Mode | Choose between fixed opacity or in-game player controls. |
| Textures | Texture Outline | Adds colored outlines to hologram blocks for better visibility. |
| Features | Spawn Animation | Enables/disables the animation when the hologram appears. |
| Advanced | Coordinate Lock | Forces the hologram to specific world coordinates. |
| Advanced | Initial Offset | Sets a default X, Y, Z displacement relative to the armor stand. |
Sources: src/index.html:115-200, src/HoloPrint.json:813-840
In-Game Interaction Model
The following sequence diagram represents the interaction between the Player and the Armor Stand (Hologram Host) within the Minecraft environment:
This diagram outlines how the armor stand's client-side entity scripts process player interactions based on the item held.
Sources: README.md:30-55, src/HoloPrint.js:460-490
Technical Specifications
File Formats
- Input:
.mcstructure(NBT),.mcworld(LevelDB),.mcpack(ZIP). - Output:
.mcpackcontaining JSON-based geometry, textures, and client-side entity scripts (.molang).
External Libraries
The project integrates several key libraries to handle complex tasks:
- three.js: Used for 3D preview rendering.
- NBTify: Handles the reading of Minecraft's Named Binary Tag format.
- JSZip: Compresses the generated resources into the final
.mcpack. - potpack: Manages texture atlas packing.
Sources: README.md:86-110, src/index.html:92-105
HoloPrint provides a robust bridge between static structure data and dynamic in-game building assistance, focusing on high performance and user customization within the constraints of the Minecraft Bedrock engine.