github JannisX11/blockbench v5.0.0-beta.1
5.0.0 Beta 1

pre-release8 days ago

Welcome to the first beta for Blockbench 5.0!

To test this beta, download the required installation files from below, or enable the setting "Update to Pre-releases" inside Blockbench. Enabling this setting will tell Blockbench to always update to the latest pre-release, allowing you to test the latest features.
Please note that pre-release versions in general may be unstable and have more issues than release versions.

To test the web app, visit https://blockbench-dev.netlify.app/

Please report issues you find in the beta, make sure to specify the correct version.

Overview

This beta is not a feature complete version of 5.0, some features are still work in progress and a few more smaller features are planned.

Key features in this beta:

  • New Design
  • Armatures / Mesh deformation
  • Splines
  • Billboards
  • Panel tabs
  • Changes to customizing themes
  • ...and more

Armatures

Armatures introduce a new way of animating models. Attach an armature to a mesh to create a rig, then animate the rig.
Rigs can bend and deform meshes, allowing greater flexibility when setting up a model for animation.

Alongside armatures, the new tool "Weight Brush" has been added. This tool lets you control which parts of a mesh are affected by a certain bone.
Select the tool, select a bone, and then paint on the mesh. A black area on your mesh indicates that the bone has no effect on it.
The warmer the color, the higher the effect of the bone will be. A red vertex will be fully controlled by the bone.
By default, weights will automatically be assigned to your mesh when you attach an armature to it, but the weight brush lets you refine this.

  • Added armatures
  • Added armature bones
  • Added new Weight Brush tool
  • Added Vertex Weight view mode

Splines

Splines are a new mesh type that simplify the creation of long mesh shapes following a specific path.
Splines offer a great way to model objects like cables, branches, pipes, snakes, stylized hair, and all sorts of shapes like that.

Overview over spline functionality

Thanks to @Azagwen for adding this feature!

UI Changes

  • Upgraded the design of Blockbench, introducing more rounded corners, gradients, shadows, and paddings
  • Multiple panels can now be added into one as tabs
  • Renamed former "Element" panel to "Transform"
  • Added "Element" panel as a tab behind "Transform"
  • Removed edit session dialog close button
  • Settings that were added by a plugin now display the plugin name in the UI
  • Added modifier key hint for moving panels without docking
  • Updated keyframe icons (#2712, thanks @MrSirSquishy!)
  • Form labels no longer have colons by default

Preview options

  • Added preview options menu
  • Added option to show/hide gizmos (#2803)
  • Added quick preview background color option (#1788)
  • Allow blueprint reference images in front of the model
  • Added setting to toggle double click to select reference image
  • Shift click in orbit gizmo to select middle, (#2685)
  • Set antialiasing bleeding fix setting back to true by default

Exporting

  • Added STL exporter
  • Added GIF exporter for images (#2679)
  • Before asking for save locations for multiple textures when saving, a pop-up now opens to confirm you want to save them
  • Added git text normalization for json files

Animation

  • Added expanded molang expression editor (#2636)
  • Added animation groups (#2327)
  • The animation list is now searchable
  • Added setting to change default keyframe type (#2319)
  • Bind to actor property on keyframes (#2827)
  • Allow locking animation as playing while selected
  • Added support for shift and control modifiers when sliding keyframes with keyboard
  • Move keyframes up and down in graph editor with arrow keys (#2314)
  • Added animation file save as context menu option
  • Added channel filter action to timeline context menu

Texturing

  • Added darken/lighten blend modes
  • Added Flipbook texture toggle in texture context menu
  • Searchable texture list

New elements

  • Added billboards
  • Added splines
  • Added armatures and armature bones
  • The add element actions in the outliner toolbar have been combined into one Add Element action with a submenu

Minecraft

  • Added display settings support for the new shelf slot (#2900, thanks @Nogard-YT!)
  • Added java display settings GUI slot clipping
  • Added fallback for query.model_scale (#2902)
  • Added support for cem model field in jem format (#2899)

Minecraft skin editor

  • Added skin menu
  • Added waist bone for minecraft player skins
  • Option to convert between slim and wide skin model (#1735)
  • Added custom skin pose saving (#1614)
  • Option to load skin textures from Minecraft vanilla samples pack

Themes customization

  • Added a new CSS-based .bbtheme file format (More info)
  • Theme configuration options (Better organization for sets of themes #2657)
  • Workflow improvements for theme creators
    • Themes can now be edited in an external code editor using CSS syntax
    • You can reload themes with the press of a button
    • You can enable automatic reload to apply your changes instantly when you save them
  • Separate CSS layer for themes, allowing full CSS control without using !important.

Miscellaneous changes

  • Added mesh smooth shading option (#2024)
  • Added Record Gizmos option to GIF Recorder
  • Added setting for relative or absolute asset paths (#1322)
  • Allow specifying custom install location on Windows (#1884)
  • Added setting to disable autocomplete (#2473)

Technical updates

  • Switched codebase to use modules and esbuild
  • Introduced typescript
  • Added new development workflow, scripts, and VSCode renderer debug integration (see readme.md on the "next" branch)
  • Updated three.js to 0.150
  • Updated required browser version to ES2023
  • Renamed selectLow to markAsSelected on outliner nodes
  • Implemented new element behavior system, allowing more hard-coded behavior of elements to be customized on custom element types
  • Added full clone support for "object"-type properties
  • Change how outliner hierarchy + groups are saved in undo history and bbmodel
  • Mobile UI tweaks
  • Support for separators in menu sidebars
  • Added permission system for plugins using native APIs
  • Added scoped file system
  • Changed Group.selected to return array
  • Added dialog onResize hook
  • Plugin dependency order is now resolved on load

There are some breaking changes to the plugin API in this update. Read Upgrading Plugins to 5.0 for details.

Typescript

The codebase is now partially using typescript, with the goal to move everything to typescript over time.
Some files are now fully written in typescript. Legacy files files are still written in javascript, and types are defined as .d.ts files in the ./types/custom directory.
Types from typescript files are automatically generated from source and saved inside ./types/generated.

The blockbench-types package is now generated from this repository, the old repository will become deprecated. This will help keep types up-to-date and verify their correctness when making changes.

Fixes

  • Fixed #2839 Pivot sliders move position of meshes
  • Fixed brush outline not showing up when using WebGL1
  • Fixed #2832 invalid texture state after rotating layer
  • Fixed animation axis directions
  • Fixed scrollbar colors in 2D editor
  • Fixed missing centroid in texture vertex shader
  • Fixed element selection issue in Condition resolving
  • Fixed HSV sliders affecting each other while using
  • Fixed loop cut direction when loop of faces is selected
  • Fixed hybrid menu mouse hover issue
  • Fixed closing window sometimes requiring two clicks
  • Disabled UV remapping when changing project resolution (#2799)
  • Improved viewport orbit rotation on ultra wide screens (#2801)
  • Improved texture bleeding fix in display reference models (#2860)
  • Fixed applying animation controller preset not registering undo edit
  • Fixed #2875 Incorrect importing of discontinuous keyframes
  • Fixed #2874 bedrock display settings scale can export as negative
  • Fixed clicking on UV editor scroll bar triggering paint tool
  • Fixed texture mesh shape with PBR map selected
  • Fixed variable placeholder not working with number arguments

Don't miss a new blockbench release

NewReleases is sending notifications on new releases.