<p>Notch's engine most likely works using volume raymarching in a volume field. This means that you shoot rays that move a certain distance and check whether they are inside and object or not. Once they are, they return the position of the colission and some other data.</p>

<p>You can either advance rays by a set amount per step until you hit something or refine the final collision position by doing a binary search along the last walked ray segment once you hit something. Both of these aproaches have the problem that they can overshoot, missing small geometry, or take a large amount of steps to traverse empty space where there is no geometry to hit.</p>

<p>Binary search can add precision and reduce overshoots somewhat but comes at an extra runtime cost for doing a binary search per ray.</p>

<p>Signed distance fields are essentially 3d arrays  tell you how far away from any surface you are. This allows you to do raymarching with ray step sizes equal to that number and being sure that you wont overshoot, as well as stepping through large empty spaces quite quickly. This greatly enhances performance and reduces overshoots from a regular step size or binary search based approach.</p>

<p>This last technique trades off runtime speed for precompute time and extra memory. So it is not always adequate for rendering exteriors or large scenes. Its memory usage an runtime speed can be further improved by using a hierachical data structure that gets re built every so often with more detail and data density near the camera and less further away from it.</p>

<p>EDIT: Oh it seems i misread density for distance</p>

<p>I really have no idea what a signed density field is. I've never heardthe term before. A quick goolge search throws results that talk about signed distance fields. I would guess it was either a mistake to write that, some obscure tech or something that Notch made up himself.</p>

CC BY-SA 3.0
2018-01-31T21:43:05.873Z
2018-01-31T22:09:05.220Z
2018-01-31T22:09:05.220Z
Sebastián Mestre
<p><a href="https://twitter.com/notch?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor%22@notch%22" rel="nofollow noreferrer">@notch</a> has recently been posting on an engine he is developing. He claims that it is voxel-based and supports deformable terrain, with a render distance of almost 1000 000 voxels and real-time reflections, <a href="https://twitter.com/notch/status/952333638028398592" rel="nofollow noreferrer">running at 99fps in WebGL</a>. Even with heavy LOD reduction, such a thing sounds too good to be true. He has not published any source code as of now, so does anyone have an idea how this is done? Is it just many small optimizations or could this be a new approach to real time 3D?</p>

<p>EDIT: He also mentions a "<a href="https://twitter.com/notch/status/952104406157332481" rel="nofollow noreferrer">signed density field</a>". What does that mean exactly?</p>

CC BY-SA 4.0
2020-11-24T21:16:57.003Z
Notch deleted his old tweets, so we'll probably never know...
Tau
CC BY-SA 4.0
2020-11-26T22:23:25.520Z
Deve Strawn has compiled [a pretty good summary](https://www.devonstrawn.com/articles/Notchs-rendering-experiments.html) though.
Tau
<webgl><optimisation><reflection><compression>
How does notch's new graphics engine work?
Tau
# How does notch's new graphics engine work?

(Asked by: username_0 on 2018-01-31)

[@notch](https://twitter.com/notch?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor%22@notch%22) has recently been posting on an engine he is developing. He claims that it is voxel-based and supports deformable terrain, with a render distance of almost 1000 000 voxels and real-time reflections, [running at 99fps in WebGL](https://twitter.com/notch/status/952333638028398592). Even with heavy LOD reduction, such a thing sounds too good to be true. He has not published any source code as of now, so does anyone have an idea how this is done? Is it just many small optimizations or could this be a new approach to real time 3D?

EDIT: He also mentions a "[signed density field](https://twitter.com/notch/status/952104406157332481)". What does that mean exactly?

**Tags:** webgl, optimisation, reflection, compression

> **Comments:**
> **username_0**: Notch deleted his old tweets, so we'll probably never know...  
> **username_0**: Deve Strawn has compiled [a pretty good summary](https://www.devonstrawn.com/articles/Notchs-rendering-experiments.html) though.  

---

## 1 answers

### Answer by username_1 on 2018-01-31. Score: 2

Notch's engine most likely works using volume raymarching in a volume field. This means that you shoot rays that move a certain distance and check whether they are inside and object or not. Once they are, they return the position of the colission and some other data.

You can either advance rays by a set amount per step until you hit something or refine the final collision position by doing a binary search along the last walked ray segment once you hit something. Both of these aproaches have the problem that they can overshoot, missing small geometry, or take a large amount of steps to traverse empty space where there is no geometry to hit.

Binary search can add precision and reduce overshoots somewhat but comes at an extra runtime cost for doing a binary search per ray.

Signed distance fields are essentially 3d arrays tell you how far away from any surface you are. This allows you to do raymarching with ray step sizes equal to that number and being sure that you wont overshoot, as well as stepping through large empty spaces quite quickly. This greatly enhances performance and reduces overshoots from a regular step size or binary search based approach.

This last technique trades off runtime speed for precompute time and extra memory. So it is not always adequate for rendering exteriors or large scenes. Its memory usage an runtime speed can be further improved by using a hierachical data structure that gets re built every so often with more detail and data density near the camera and less further away from it.

EDIT: Oh it seems i misread density for distance

I really have no idea what a signed density field is. I've never heardthe term before. A quick goolge search throws results that talk about signed distance fields. I would guess it was either a mistake to write that, some obscure tech or something that Notch made up himself.


---

