diff --git a/CHANGELOG.md b/CHANGELOG.md index c39031310..9593f16b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,39 @@ All notable changes to this project will be documented in this file. +## 4.4.1 unlocked +- Remove fullscreen engine-based loading screen + - It either finish or freeze, blocking the user is annoying and wastes resources + - If there is a progress you can check the progressbar at the bottom +- Remove unnecessary camera framing behavior +- New 'Async Bake' option (three.js worker) + - Try 'bake color groups' to see the effect +- Encapsulate BABYLON (90% finished) +- Viewaxis-box frame voxel selection on transforms +- Fix PT not taking screenshot +- Fix bakery not respect the first voxel at 0,0,0 +- Minimize (almost fix) a few hundred milliseconds of startup lag + - BABYLON.HDRCubeTexture locks the main thread (see 4.3.4) + - To workaround it, we started with a smaller texture size +- Animate the sandbox camera framing behavior similar to babylon.js +- in progress... + +> - BABYLON.Quaternion.RotationAxis bug (The update of the babylon.js has been stopped because this bug leads to many other bugs in the engine, the bug is mentioned in 4.3.5 (see setOverlayPlane()). This bug exists in 15 versions, considering the status of Windows, I read it as Microsoft trying to stop being a software company!) + +## 4.4.0 sandbox +- Generator moved to modules +- Voxelizer moved to modules +- Improves workflow by removing annoying ui behaviors (post-ES6 feature) +- Less complex user-interface (no more hide-and-seek ui) +- Merge cameras for less confusion +- Faster and less error prone ui in general +- Officially multi-engine (three.js sandbox tab) +- Match the sandbox camera and materials to babylon's PBR shader + - Camera and HDRI is now equal in all 4 modes + +> - x2 primary canvases and x2 engines, handing x2 babylon.js scenes and x2 three.js scenes! +> - Of course, only one of the two scenes in each mode is heavy, the startup time locked on avg. 0.4 second! +> - The new three.js tab doesn't replace the current functionality, it's a new world and I won't reveal what it's for! + ## 4.3.9 ES6 - Load main.js as module - Faster startup avg. 0.4s (it loads faster than most corporate websites!) @@ -9,10 +43,9 @@ All notable changes to this project will be documented in this file. - Functions to classes from bottom to top! - Terrain generator uses height-gradient when 'New Scene' unchecked - Window is no longer used to transfer modules -- Remove setMenuModes, not force closing menus in certain modes > - I have generally used ES6 in the code, the only problem was loading main as a module, which was solved by transferring 200 events to the main. -> - Babylon will not be imported as a module, I will never use webpack, react, typescript etc. I don't have a corporation forcing me to use corporate crap. +> - Babylon will not be imported as a module, I will not use webpack, react, typescript and other corporate stuff. ## 4.3.8 - Add keyboard shortcuts map (see about menu) diff --git a/README.md b/README.md index 3625f9e6d..4ebb74121 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,14 @@ ![screenshot](media/screenshot.png?raw=true "Screenshot") -Voxel-based 3D modeling application
+**Voxel-based 3D modeling application**
+The most featured and leading open source multi-engine voxel-based modeling software on the web, Written in pure JavaScript, Powered by Babylon.js and Three.js with three-mesh-bvh library. + +*"They call it the Hall of Fame"* -dev + [https://nimadez.github.io/voxel-builder/](https://nimadez.github.io/voxel-builder/) -```Version 4.3.9 Beta```
+```Version 4.4.1 Beta```
[Changelog](https://github.com/nimadez/voxel-builder/blob/main/CHANGELOG.md) [Installation](https://github.com/nimadez/voxel-builder#installation)
@@ -128,22 +132,24 @@ How to run Blender importer script? ## History ``` -↑ ES6 + x1.5 faster startup -↑ Linux and Firefox ready +↑ Officially multi-engine (three.js is hardwired internally) +↑ ES6 + x1.5 faster startup + Linux and Firefox ready ↑ Voxel engine updated to thin-instances (64k to 1M boost) ↑ Cut half precision (new scene) ↑ Real-time GPU path tracing ↑ Introducing ES modules ↑ Stable beta release ↑ Advancing to the next level (bakery) -↑ Major code rewrite (functions to classes) ↑ Features and uix overhaul ↑ New SPS particles to build the world -↑ I wrote a playground for learning Babylon.js +↑ 2019 - I wrote a playground for learning Babylon.js "I don't mean to compete, GL is nostalgic for me." ``` +Version 4.3.9 *(BJS 7 - Three r168)*
+ + Version 3.0.0 *(BJS 4)* to 4.2.2 *(BJS 6)*
![screenshot](media/devshots.jpg?raw=true "Screenshot") diff --git a/electron.js b/electron.js index df68ad9cb..1616d8eb3 100644 --- a/electron.js +++ b/electron.js @@ -4,12 +4,11 @@ if (!require('electron').app.requestSingleInstanceLock()) require('electron').app.exit(0); -const { app, BrowserWindow, nativeImage, globalShortcut } = require('electron'); -const APPICON = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3FpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDA5ZDQ4Ni00ZmQ0LWZiNDktODZjYy05N2Q0ZDc1ZmRmYWUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzM0MDIyM0NDRkVEMTFFRDg1NThGQzVFOTExREY1OUIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzM0MDIyM0JDRkVEMTFFRDg1NThGQzVFOTExREY1OUIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmQ4MGRjNzEzLTkwMzEtYzM0Zi1hOTc4LTQ5YjIzNWQ1YjM2NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDA5ZDQ4Ni00ZmQ0LWZiNDktODZjYy05N2Q0ZDc1ZmRmYWUiLz4gPC9y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"; +const { app, BrowserWindow, globalShortcut } = require('electron'); function createWindow() { const mainWindow = new BrowserWindow({ - icon: nativeImage.createFromDataURL(APPICON), + icon: './src/assets/appicon.png', width: 1200, height: 800, autoHideMenuBar: true, diff --git a/media/appicon.png b/media/appicon.png deleted file mode 100644 index 4568a9609..000000000 Binary files a/media/appicon.png and /dev/null differ diff --git a/media/devshot_43.jpg b/media/devshot_43.jpg new file mode 100644 index 000000000..56400dcd5 Binary files /dev/null and b/media/devshot_43.jpg differ diff --git a/media/screenshot.png b/media/screenshot.png index 716e449e9..7ecae6310 100644 Binary files a/media/screenshot.png and b/media/screenshot.png differ diff --git a/package.json b/package.json index 7fe1ca40a..39ee8f4ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "voxel-builder", - "version": "4.3.9", + "version": "4.4.1", "description": "Voxel-based 3D modeling application", "main": "electron.js", "scripts": { @@ -13,6 +13,7 @@ "electron": "^30.0.0", "babylonjs": "^7.17.0", "three": "^0.168.0", - "three-mesh-bvh": "^0.7.6" + "three-mesh-bvh": "^0.7.6", + "@tweenjs/tween.js": "^25.0.0" } } diff --git a/scripts/ws-connect.py b/scripts/ws-connect.py index f4298026b..5279595f7 100644 --- a/scripts/ws-connect.py +++ b/scripts/ws-connect.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # # Websockets Server -# This script can be used to connect with machine learning models +# This script can be used to connect with or train machine learning models # $ python3 ws-connect.py diff --git a/src/assets/appicon.png b/src/assets/appicon.png new file mode 100644 index 000000000..2261db3d4 Binary files /dev/null and b/src/assets/appicon.png differ diff --git a/src/index.html b/src/index.html index d21750488..d46ca2778 100644 --- a/src/index.html +++ b/src/index.html @@ -17,7 +17,7 @@ Voxel Builder - + +