# Technical Documentation: JannisX11/blockbench

> ℹ️ **Provenance:** Multi-Tier Ingestion · [CodeWiki Reference](https://codewiki.google/github.com/JannisX11/blockbench)

### Overview (`README.md`)

# Blockbench

Blockbench is a free and open source model editor for low-poly models with pixel art textures.
Models can be exported into standardized formats, to be shared, rendered, 3D-printed, or used in game engines. There are also multiple dedicated formats for Minecraft Java and Bedrock Edition with format-specific features. 

Blockbench features a modern and beginner friendly interface, but also offers lots of customization and advanced features for experienced 3D artists. Plugins can extend the functionality of the program even further.

Website and download: [blockbench.net](https://www.blockbench.net)






## Contribution

[](CODE_OF_CONDUCT.MD)

Check out the [Contribution Guidelines](CONTRIBUTING.md).



## Launching Blockbench

To launch Blockbench from source, you can clone the repository, navigate to the correct branch and launch the program in development mode using the instructions below.
If you just want to use the latest version, please download the app from the website.

### Setup Repository
* Install [NodeJS](https://nodejs.org/en/).
* Then install all dependencies via
`npm install`


### Run in Electron
Use this command or press Ctrl + Shift + B to launch Blockbench in Electron:

`npm run dev`

To enable debugging in VS Code, switch to the **Run & Debug** tab, select the **"Debug Renderer"** configuration, and press the green arrow button to launch.
Now you can set breakpoints and debug inside VSCode.


### Run the web app
Use this command to launch the web app locally:

`npm run serve`

Now you can open the web app in your browser under http://localhost:3000


## Plugins

Blockbench supports Javascript-based plugins. Learn more about creating plugins on [https://www.blockbench.net/wiki/docs/plugin](https://www.blockbench.net/wiki/docs/plugin).



## License

* The Blockbench source-code is licensed under the GPL license version 3. See `LICENSE.MD`.
* Modifications to the source code can be made under the terms of that license.
* Blockbench plugins (external scripts) and themes (theme files to customize the design) that interact with the Blockbench API are an exception. Plugins and themes can be created and/or published as open source, proprietary or paid software.
* All assets created with Blockbench (models, textures, animations, screenshots etc.) are your own!

---

### Overview (`types/README.md`)

# Blockbench Typescript Types!

## Generated types
All type definitions in the folder /generated/ are auto-generated from the Blockbench source.
All exports are converted to global declarations.
To exclude source files from generating types, add them to the "exclude" list in type_config.json.
To exclude individual exports, use the typescript @private flag.

## Custom types
All type definitions in the /custom/ folder are manually written and are intended to provide types for old files that are still in Javascript.


## Generating types
Run `npm run generate-types` from the main repo. Ensure typescript throws no errors, otherwise files won't export correctly.

## Locally testing and using types
To use these types in other projects on your local PC before they are published, run this command in your other project:

`npm install "C:/path/to/blockbench/types"`

Where the path leads to this /types/ folder in the Blockbench repository.

## Publishing types

`npm run publish-types --dry-run`

`npm run publish-types --tag beta`

`npm run publish-types`

---

### News.Json (`content/news.json`)

{
	"new_version": {
		"color": "var(--color-bright_ui)",
		"text_color": "var(--color-accent_text)",
		"layout": "vertical",
		"insert_after": "splash_screen",
		"text": [
			{"text": "Welcome to Blockbench 5.2", "type": "h1"},
			{"text": "Check out the [full changelog](https://github.com/JannisX11/blockbench/releases/tag/v5.2.0) - or watch the [update video](https://youtu.be/9MET5-wH5uw)!"}
		],
		"features": [
			{
				"image": "https://web.blockbench.net/content/reference_images.png",
				"title": "3D Reference Images",
				"text": "Position your reference image as a 3D plane anywhere in your scene!\n\nAlso new: Playback controls for video references, locked references in the 2D image editor, and moveable reference models!"
			},
			{
				"image": "https://web.blockbench.net/content/screen_space_brush.png",
				"title": "Screen-Space Brush",
				"text": "Paint from the angle of your view across any edges and elements!"
			},
			{
				"image": "https://web.blockbench.net/content/layer_groups.png",
				"title": "Layer Groups",
				"text": "Organize your texture layers with the new layer groups!"
			},
			{
				"image": "https://web.blockbench.net/content/ik_pole.png",
				"title": "Inverse Kinematics",
				"text": "IK is now better than ever! Pole vectors give you control over bend directions, armatures are fully supported, and it's faster and smoother!"
			}
		]
	}
}

---

--- METRICS ---
- Files Extracted: 3
- Estimated Token Budget: ~1224 tokens
- Canonical Reference: https://codewiki.google/github.com/JannisX11/blockbench
