Sorry, about that. https://discord.gg/Hxr7FPAn
I'll update it
Yep, the projection function is supposed to give the closest point, although it doesn’t always have to be exact. The sphere, plane, and box projection functions are exact, outputting the closest point on the surface of the object to the input. Other functions are more approximate, like the möbius strip, intersection, and interpolation functions which give a somewhat close point (because the real projection fn is too complex). I usually look at a shape’s 3D sdf first to get an idea of what the fn should roughly look like, then play around in 3d desmos and then extend to 4d from there.
I uploaded the version I had in this video to the google drive here: https://drive.google.com/drive/folders/14UXYHcIoFhr9kYHzdlgCnf-XlHYUd3h5?usp=sha... . I also added some instructions for it to the top of this post, enjoy! : )
Once I work on the menus and settings I'll allow the player to toggle gravity and free cam.
It'll likely be a while before I can get to different kinds of manifold descriptions (alternatives to proj fn), but it is something I'll try eventually. Rendering general geodesic equations would definitely be interesting.
I believe if you tried to take these areas of local hyperbolic geometry and extend them, you'd end up with a lot of self-intersections (unless you're in 6D and have extra dimensions to extend into). You can see this visually in this part of this video by CodeParade, creator of Hyperbolica. The crocheted hyperbolic plane gets really cramped as it is extended outwards and would continue to get more cramped if it were larger.
I also could theoretically try to deal with self-intersection, but it might be difficult, especially in the case of the hyperbolic 3D-plane.
Unfortunately even 2D hyperbolic geometry embeddings use up more than euclidean 4D (source). I could probably make this happen in the future if I generalize the embedding code to allow for an Nd embedding. The game still has a lot of small areas with local hyperbolic geometry like the inner part of the wormholes: 
I implemented the tiger, sphone, and duospindle here (specifically at 7:03):
The Duo-spindle was really cool. I didn't have to round the manifold to get a good result which was surprising, and it had some interesting features.
It got cut off in the video, but here's the projection function I used for the duospindle in the video:
Proj::proj(vector: vec4) -> vec4 {
let xy: vec4 = vec4(vector.x, vector.y, 0, 0);
let xy_len: f32 = length(xy);
let zw: vec4 = vec4(0, 0, vector.z, vector.w);
let zw_len: f32 = length(zw);
let d: f32 = clamp(xy_len - zw_len, -r, r);
let xy_component: vec4 = select(
normalize(xy),
vec4(0, 0, 0, 0),
xy_len == 0
) * (r + d);
let zw_component: vec4 = select(
normalize(zw),
vec4(0, 0, 0, 0),
zw_len == 0
) * (r - d);
(xy_component + zw_component) / 2
}The rest of the basic shape code is at 14:31
I'll try some of the other manifolds soon, the pinched duo-cylinder looks interesting.
It's a side project. I am hoping to get back to it this holiday season, but that's why it's been on the back burner. Also, trying to get rotation to work reliably without exploding has been very challenging which has also slowed progress when I've tried to work on it (although I'm slowly getting closer to it working, I think).
Good to hear it works on linux, hopefully the lag will be better once I shift focus towards optimizing everything, but looking at the sky will likely always make the lag a little worse (because all of the marched rays will step forwards the maximum number of times since they don't hit anything). It definitely can be improved though.
The version uploaded here has the levels hardcoded so it's not an easy fix, but the version I'm working on right now not only has the level files exposed (in the assets folder using RON: https://github.com/ron-rs/ron), but also the geometry descriptions written in a small wgsl-like language I made (https://github.com/TomjWolcott/scaffold_scripting) and some limited scripting written in rhai (https://rhai.rs/). Here's a small post showing off the various scripting files: https://tomwol.itch.io/arbgeom/devlog/781405/scripting-files-for-arbgeom-august-...
Thank you, it's great to hear that it's working on rtx!!!
I haven't given up, I've just been busy recently which I believe (hopefully) should change soon. I now have rotational physics seemingly working and I'm trying to get friction working too. Once I have those I'll upload a video demonstrating them across some cool new geometries I haven't shown off yet : )