@mattpfeiffer.bsky.social
Platforms Engineer | Audio/Graphics | RealityKit | Metal
RealityKit experiment #81
(code in the replies)
I found a scan of a human skeleton and wanted to try to visualize it in RealityKit. The PLY file had millions of triangles, so I had to decimate the mesh. It ended up being really satisfying to see the wireframe at different LODs
Thanks Clem! I would love to see that Gaussian Splat example
03.10.2025 16:49 — 👍 1 🔁 0 💬 0 📌 0RealityKit experiment #80
(gist in the replies)
LowLevelMesh “Falling Sand” dissolution and reassemble effect created with SDF shapes and Marching Cubes. A Metal compute shader uses a spatial sweep to "release" triangles that rigidly start to fall
RealityKit experiment #79
(code in the replies)
Animating 3D text by converting the output of MeshResource(extruding:) to a LowLevelMesh and applying a Metal compute shader
The MeshResource was interesting to unpack since it had multiple models/parts plus instance transforms
Thank you! 🙏
18.09.2025 15:59 — 👍 0 🔁 0 💬 0 📌 0RealityKit experiment #78
(gist in the replies)
LowLevelMesh explode-and-assemble animation created by meshing an SDF using Marching Cubes and rigidly pushing it’s triangles outward
RealityKit experiment #77
(gist in the replies)
Color-blending metaballs created from animated sphere SDFs via Marching Cubes. LowLevelMesh vertices store per-vertex color in the Geometry Color vertex attribute, read by ShaderGraphMaterial
Ahhh, well I love that description 😆
20.08.2025 09:27 — 👍 1 🔁 0 💬 0 📌 0Is it the room?
20.08.2025 09:17 — 👍 0 🔁 0 💬 1 📌 0RealityKit experiment #76
(gist in the replies)
LowLevelMesh blob from meshing the smooth-min of animated sphere SDFs with marching cubes. Glassy ShaderGraphMaterial is based on Apple's "Implementing adjustable material" sample
Haha exactly 😆
13.08.2025 16:57 — 👍 1 🔁 0 💬 0 📌 0RealityKit experiment #75
(gist in the replies)
LowLevelMesh shape shifting by interpolating between two signed distance fields and meshing with marching cubes
RealityKit experiment #74
(gist in the replies)
- LowLevelMesh with disconnected geometry
- Marching Cubes + SDF for vertex positions
- Vertex normals from SDF gradient
- Polynomial smooth-min to blend the shapes
RealityKit experiment #73
(gist in the replies)
Here's a simple burn fade example. The ShaderGraphMaterial directly sets the color and opacity from the UV2 attribute of the LowLevelMesh vertices and the Metal compute shader updates those color/opacity values
Yeah that makes sense
The idea came to me while building a glowing torus for a project and I just wanted to see how it would look as a spinner. Performance is probably not good 😆
RealityKit experiment #72
(gist in the comments)
LowLevelMesh Torus Spinner
- incrementally adds vertices/indices (or shifts the indexOffset when removing)
- multiple layers of varying opacity and minor radius are stacked with additive blend mode for the glow effect
RealityKit experiment #71
(gist in the comments)
- Loads mesh & texture from USDZ
- LowLevelMesh verts use float4 color+alpha in uv2
- ShaderGraphMaterial blends texture with uv2.rgb, sets opacity from uv2.w
- Metal Compute Shader animates uv2
@vrhermit.com but that's only on the growth animation of the mesh. If you kept the mesh quality low and didn't care about the growth animation, you could probably go really high! You would just need to replace the incremental growth implementation with an algorithm that calculates the end state
06.07.2025 16:49 — 👍 1 🔁 0 💬 1 📌 0There's currently a bottleneck on the CPU-side that would prevent you from going too high (how high depends on the mesh quality), but I was thinking about trying to combine this idea with MeshInstancesComponent to create a field of grass since it's all one mesh
06.07.2025 16:40 — 👍 0 🔁 0 💬 1 📌 0