Piston Developers 🍿🥤🐸
pistondeveloper.bsky.social
Piston Developers 🍿🥤🐸
@pistondeveloper.bsky.social
A modular game engine written in Rust https://piston.rs
Research branch: https://advancedresearch.github.io

Discord (Piston): https://discord.gg/TkDnS9x
Discord (AdvancedResearch): https://discord.gg/JkrhJJRBR2
Pinned
#StandWithUkraine 🇺🇦 (since Feb 27, 2022)
I've figured out a way to improve run-length compression on masks in Turbine-Process3D over 10x faster using pre-masks:

Compression: 21.360625982284546 sec (79.224%)
Avg per tile: 0.008900260825951894 sec

Compression: 1.4767029285430908 sec (21.383%)
Avg per tile: 0.0006152928868929545 sec
November 25, 2025 at 1:26 PM
Today I made a new goblet Dyon script, and I added support for snow in my planet generator (in voxels).
November 24, 2025 at 9:51 PM
This is a pyramid with semi-transparent voxels in chess pattern, 200x200 (40 000 voxels):

It took just a few seconds to run the Dyon script and render.

File size? 469 KB (95 KB compressed).

Memory usage? 56.4 MB.

Turbine-Process3D is amazing. ON THE CPU!
November 24, 2025 at 4:15 PM
I've published Turbine-Process3D v0.9.1 with the fix of artifacts when rendering semi-transparent voxels.

I think it's a good default, but I'm open up to reverting this change later if it gets in the way of productivity.
November 24, 2025 at 12:01 PM
Yup, shrinking the Aabb on voxels removes the artifacts:
November 24, 2025 at 11:15 AM
Turbine-Process3D v0.9 is released! This update fixes some bugs. It also adds Accumulators, a powerful abstraction for rendering pipelines. (e.g. you don't have to rewrite render pipeline when debugging, only change a type). `fake_all_masks` turns off mask compression.

crates.io/crates/turbi...
crates.io: Rust Package Registry
crates.io
November 24, 2025 at 1:53 AM
Finally, I got an Accumulator working that does seamless transition from opaque to semi-transparent voxels, using a variant of volumetric fog, that retreats to opaque for high alpha values:
November 23, 2025 at 1:55 PM
Turbine-Process3D v0.8 is released! This update makes all triangles on cubes face outwards. A new pipeline for chunk processing is added for iterating over all triangles (e.g. when rendering semi-transparent objects). Alpha blending. Internal memory for the Produce trait.

crates.io/crates/turbi...
crates.io: Rust Package Registry
crates.io
November 23, 2025 at 1:54 AM
I'm currently working on updating the quad faces of cubes such that every triangle has its front faced outwards. This is the most common use case, to enable front-face optimization during rendering. I'll add unit tests for every triangle.

Maybe I'll add versions later for environmental cube maps.
November 22, 2025 at 9:47 PM
I've added a new `RayHitAll` to Turbine-Process3D.

I figured out that `RayHit` is too limited when you want to render semi-transparent objects. `RayHitAll` uses a new `IndexFlag` structure that wraps `usize` and `bool` into `i64`.
November 22, 2025 at 8:05 PM
Currently, I use Piston2D-Graphics to display the final image produced using a customized renderer using Turbine-Process3D.

Instead of using e.g. WGPU to render the final image, what if we use it in Turbine-Process3D behind the scenes?

For example, GPU kernels to do mask run-length compression.
November 22, 2025 at 7:45 PM
When you think intuitively about ray tracing, you think about a single ray. The problem? Rays have to interact with geometry. There is no such thing as a "single geometry".

What you should think about, is ray vs geometry interaction.

Think about ray vs geometry interactions as kind of iterators.
November 22, 2025 at 5:51 PM
Some people complained that I wrote some Rust libraries as if Rust was C.

The same people complained when I wrote some Rust libraries as if Rust was Haskell.

When I wrote some Rust libraries as if Rust was Constructive Logic, they gave up and haven't criticized me ever since.
November 22, 2025 at 3:29 PM
Got semi-transparent objects working:

I use an finite accumulator that sorts colors by depth and calculates the final color. Here, it can only render 64 layers.
November 22, 2025 at 4:07 AM
I'm tempted to add a new method to the `Produce` trait that translates addresses from produced memory to internal memory:
November 21, 2025 at 7:51 PM
Turbine-Process3D v0.7 is released! This update adds a new `Produce` trait that can be used to reduce memory significantly, depending on the geometry primitives being used, for example when only needing voxels instead of triangles.

crates.io/crates/turbi...
crates.io: Rust Package Registry
crates.io
November 21, 2025 at 7:18 PM
This voxel planet has radius 500, took 42 seconds to render. The voxel format is only 13.8 MB (2.1 MB compressed), but the renderer uses 1 GB of memory.

The next step for Turbine-Process3D is obvious: Use less memory.

I'm thinking about making the triangle list virtual.
November 21, 2025 at 11:53 AM
Turbine-Process3D v0.6 is released! This update adds a pre-allocation step plus multi-threading when generating run-length compressed masks. crates.io/crates/turbi...

This planet takes 3170 voxels, which is heavy since it's not a dedicated voxel renderer and runs on the CPU. I got 4 FPS.
November 21, 2025 at 12:19 AM
Reposted by Piston Developers 🍿🥤🐸
Wile E. Coyote doesn't quit. Back to the lab you go!
November 20, 2025 at 10:20 PM
I got good news from some people, that my time machine worked.

The bad news is this: I haven't yet invented it.

Somebody help? 🥺🙏

#timetravel
November 20, 2025 at 7:43 PM
We're now 96.64% on the way to find minimum primbix of value 20: advancedresearch.github.io/primbix/prim...

"Only" 10 trillion numbers left to check. 😮‍💨

Should be done in a week or so.

Found this beauty: `19, 284 546 695 913 603`. Is this the last value 19 before 20?
Primbix Research
The website for the AdvancedResearch community
advancedresearch.github.io
November 20, 2025 at 9:40 AM
Today I created a simple human readable voxel format, wrote a simple 3D viewer using Piston and Turbine-Process3D, plus a script in Dyon that generated a small city:
November 20, 2025 at 12:15 AM
Blender v5.0 is released! www.blender.org
www.blender.org
November 19, 2025 at 11:58 PM
Reposted by Piston Developers 🍿🥤🐸
November 19, 2025 at 8:13 PM
My dream about Additive computing is that you can combine all hardware available at home, run software and copy data across devices.

So, when you buy a new computer, this just adds to your own compute. It also means you can choose the design you prefer, e.g. if you prefer an old device.
November 18, 2025 at 1:06 AM