Skip to content

Commit

Permalink
Update 4.3.4 x1.5
Browse files Browse the repository at this point in the history
  • Loading branch information
nimadez committed Aug 26, 2024
1 parent 41c20fe commit b369535
Show file tree
Hide file tree
Showing 77 changed files with 15,163 additions and 5,716 deletions.
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
All notable changes to this project will be documented in this file.

## 4.3.4 x1.5
- Faster startup time (avg. 2s to 0.5s - x1.5 faster)
- Change default PT material to lambert
- Remove color grading from FX mode
- Snapshot frames the camera
- Automatic camera framing (allow to work with a small group of voxels)
- Shortcut 'F' can be used to frame camera during voxel transformation
- New project generates 1 voxel
- Default ice color is used to generate new voxels (instead of selected color)
- Darker color theme, larger hover menu, axis view and color picker
- Improve hover code, we can use this to float multiple elements
- Improve and manage all the in-screen buttons
- Measure volume tool show XYZ position on single click
- Add 'new scene' option for terrain generator
- Reduce the chance of random holes on the terrain surface
- Allow double-click for color palette in desktop
- Add voxel by X,Y,Z direct coordinate input as string
- The websockets client has been rewritten (auto disconnect after 10 retries)
- New 'ws-connect.py' script, to connect with machine learning models
- Fix a bug when the startup project is heavy and the UI doesn't wait for it
- Fix a bug where you can't select the first voxel at 0,0,0

> - Please clear your browser cache or force reload voxel-builder
> - BABYLON.HDRCubeTexture seems to be responsible for the potential startup delay/freeze, but other optimizations were done to reach 0.5 second.
## 4.3.3
- Update three-mesh-bvh to 0.7.6
- Update three to r167
Expand Down
24 changes: 17 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Voxel Builder

![screenshot](media/screenshot.jpg?raw=true "Screenshot")
![screenshot](media/screenshot.png?raw=true "Screenshot")

Voxel-based 3D modeling application<br>
[https://nimadez.github.io/voxel-builder/](https://nimadez.github.io/voxel-builder/)

```Version 4.3.3 Beta```<br>
```Version 4.3.4 Beta```<br>
[Changelog](https://github.com/nimadez/voxel-builder/blob/main/CHANGELOG.md)

[Installation](https://github.com/nimadez/voxel-builder#installation)<br>
Expand All @@ -19,21 +19,21 @@ Voxel-based 3D modeling application<br>
- Save and load JSON [?](https://github.com/nimadez/voxel-builder/wiki/File-Format)
- Import MagicaVoxel VOX
- Export to GLB, GLTF, OBJ, STL [?](https://github.com/nimadez/voxel-builder/wiki/project)
- Local storages, quicksave, undo
- Local storages, snapshots, quicksave, undo

**Model and Paint**
- Generators *(terrain, cube, sphere, isometric...)*
- Interactive modeling toolsets [?](https://github.com/nimadez/voxel-builder/wiki/model)
- Symmetric drawing and painting
- Color groups and transform tools
- High performance GPU picking system
- Color groups and voxel transform tools
- High performance GPU picking system *(the second inventor)*

**Rendering**
- High performance voxel engine
- Real-time GPU path tracing [?](https://github.com/nimadez/voxel-builder/wiki/render)

**Voxelization**
- Bvh voxelization method
- Fast BVH voxelization method
- 3D model voxelizer [?](https://github.com/nimadez/voxel-builder/wiki/Voxelization)
- Image voxelizer

Expand Down Expand Up @@ -101,6 +101,14 @@ the only solution is to merge meshes before exporting to GLB.
Visual artifacts and Moire patterns
```
These are related to thin-instances and nothing special can be done at this time.
Reproduce: set camera FOV to 0.1 and press F to fit camera
(but usually you don't need that FOV, use orthographic mode)
```
Wacom tablet crashes randomly and throws warning on Linux (GNOME)
```
Warning: BJS - Max number of touches exceeded. Ignoring touches in excess of 2.
This is a Babylon.js and Wayland issue that needs to be fixed.
(wayland uses multiple pointers, one for each input device)
```

## FAQ
Expand All @@ -121,7 +129,9 @@ How to run Blender importer script?

## History
```
↑ Voxel engine updated to thin-instances
↑ Stable x1.5 faster (optimized to current state)
↑ 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
Expand Down
173 changes: 85 additions & 88 deletions index.html

Large diffs are not rendered by default.

191 changes: 191 additions & 0 deletions libs/websockets/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
from __future__ import annotations

import typing

from .imports import lazy_import
from .version import version as __version__ # noqa: F401


__all__ = [
# .client
"ClientProtocol",
# .datastructures
"Headers",
"HeadersLike",
"MultipleValuesError",
# .exceptions
"AbortHandshake",
"ConnectionClosed",
"ConnectionClosedError",
"ConnectionClosedOK",
"DuplicateParameter",
"InvalidHandshake",
"InvalidHeader",
"InvalidHeaderFormat",
"InvalidHeaderValue",
"InvalidMessage",
"InvalidOrigin",
"InvalidParameterName",
"InvalidParameterValue",
"InvalidState",
"InvalidStatus",
"InvalidStatusCode",
"InvalidUpgrade",
"InvalidURI",
"NegotiationError",
"PayloadTooBig",
"ProtocolError",
"RedirectHandshake",
"SecurityError",
"WebSocketException",
"WebSocketProtocolError",
# .legacy.auth
"BasicAuthWebSocketServerProtocol",
"basic_auth_protocol_factory",
# .legacy.client
"WebSocketClientProtocol",
"connect",
"unix_connect",
# .legacy.protocol
"WebSocketCommonProtocol",
# .legacy.server
"WebSocketServer",
"WebSocketServerProtocol",
"broadcast",
"serve",
"unix_serve",
# .server
"ServerProtocol",
# .typing
"Data",
"ExtensionName",
"ExtensionParameter",
"LoggerLike",
"StatusLike",
"Origin",
"Subprotocol",
]

# When type checking, import non-deprecated aliases eagerly. Else, import on demand.
if typing.TYPE_CHECKING:
from .client import ClientProtocol
from .datastructures import Headers, HeadersLike, MultipleValuesError
from .exceptions import (
AbortHandshake,
ConnectionClosed,
ConnectionClosedError,
ConnectionClosedOK,
DuplicateParameter,
InvalidHandshake,
InvalidHeader,
InvalidHeaderFormat,
InvalidHeaderValue,
InvalidMessage,
InvalidOrigin,
InvalidParameterName,
InvalidParameterValue,
InvalidState,
InvalidStatus,
InvalidStatusCode,
InvalidUpgrade,
InvalidURI,
NegotiationError,
PayloadTooBig,
ProtocolError,
RedirectHandshake,
SecurityError,
WebSocketException,
WebSocketProtocolError,
)
from .legacy.auth import (
BasicAuthWebSocketServerProtocol,
basic_auth_protocol_factory,
)
from .legacy.client import WebSocketClientProtocol, connect, unix_connect
from .legacy.protocol import WebSocketCommonProtocol
from .legacy.server import (
WebSocketServer,
WebSocketServerProtocol,
broadcast,
serve,
unix_serve,
)
from .server import ServerProtocol
from .typing import (
Data,
ExtensionName,
ExtensionParameter,
LoggerLike,
Origin,
StatusLike,
Subprotocol,
)
else:
lazy_import(
globals(),
aliases={
# .client
"ClientProtocol": ".client",
# .datastructures
"Headers": ".datastructures",
"HeadersLike": ".datastructures",
"MultipleValuesError": ".datastructures",
# .exceptions
"AbortHandshake": ".exceptions",
"ConnectionClosed": ".exceptions",
"ConnectionClosedError": ".exceptions",
"ConnectionClosedOK": ".exceptions",
"DuplicateParameter": ".exceptions",
"InvalidHandshake": ".exceptions",
"InvalidHeader": ".exceptions",
"InvalidHeaderFormat": ".exceptions",
"InvalidHeaderValue": ".exceptions",
"InvalidMessage": ".exceptions",
"InvalidOrigin": ".exceptions",
"InvalidParameterName": ".exceptions",
"InvalidParameterValue": ".exceptions",
"InvalidState": ".exceptions",
"InvalidStatus": ".exceptions",
"InvalidStatusCode": ".exceptions",
"InvalidUpgrade": ".exceptions",
"InvalidURI": ".exceptions",
"NegotiationError": ".exceptions",
"PayloadTooBig": ".exceptions",
"ProtocolError": ".exceptions",
"RedirectHandshake": ".exceptions",
"SecurityError": ".exceptions",
"WebSocketException": ".exceptions",
"WebSocketProtocolError": ".exceptions",
# .legacy.auth
"BasicAuthWebSocketServerProtocol": ".legacy.auth",
"basic_auth_protocol_factory": ".legacy.auth",
# .legacy.client
"WebSocketClientProtocol": ".legacy.client",
"connect": ".legacy.client",
"unix_connect": ".legacy.client",
# .legacy.protocol
"WebSocketCommonProtocol": ".legacy.protocol",
# .legacy.server
"WebSocketServer": ".legacy.server",
"WebSocketServerProtocol": ".legacy.server",
"broadcast": ".legacy.server",
"serve": ".legacy.server",
"unix_serve": ".legacy.server",
# .server
"ServerProtocol": ".server",
# .typing
"Data": ".typing",
"ExtensionName": ".typing",
"ExtensionParameter": ".typing",
"LoggerLike": ".typing",
"Origin": ".typing",
"StatusLike": "typing",
"Subprotocol": ".typing",
},
deprecated_aliases={
"framing": ".legacy",
"handshake": ".legacy",
"parse_uri": ".uri",
"WebSocketURI": ".uri",
},
)
Loading

0 comments on commit b369535

Please sign in to comment.