(code in the replies)
I made one more update to my Logitech Muse example to preserve the anchor orientation when spawning the model. Switched to cubes to demonstrate and added a little axis indicator at the aim
(code in the replies)
I made one more update to my Logitech Muse example to preserve the anchor orientation when spawning the model. Switched to cubes to demonstrate and added a little axis indicator at the aim
(code in the replies)
Here's an update to my Logitech Muse example that handles the pressure values for the tip and secondary button
(code in the replies)
Here's an update to my Logitech Muse example that handles the pressure values for the tip and secondary button
(code in the replies)
This example turns the Logitech Muse into a virtual laser pen for point-to-point measurements. The surface intersection point is determined by raycasting along the stylus' aim-origin vector against the scene reconstruction meshes
(code in the replies)
This example turns the Logitech Muse into a virtual laser pen for point-to-point measurements. The surface intersection point is determined by raycasting along the stylus' aim-origin vector against the scene reconstruction meshes
(code in the replies)
Here’s a simple Logitech Muse example that tracks the aim, handles the action buttons, and triggers haptics
(code in the replies)
Here’s a simple Logitech Muse example that tracks the aim, handles the action buttons, and triggers haptics
(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
(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
(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
(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
(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
(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
(gist in the replies)
LowLevelMesh explode-and-assemble animation created by meshing an SDF using Marching Cubes and rigidly pushing it’s triangles outward
(gist in the replies)
LowLevelMesh explode-and-assemble animation created by meshing an SDF using Marching Cubes and rigidly pushing it’s triangles outward
(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
(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
(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
(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
(gist in the replies)
LowLevelMesh shape shifting by interpolating between two signed distance fields and meshing with marching cubes
(gist in the replies)
LowLevelMesh shape shifting by interpolating between two signed distance fields and meshing with marching cubes
(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
(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
(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
(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
(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
(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
(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
(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
(gist in the comments)
Grass Mesh with Wind 🌬️🌿
- Single LowLevelMesh with part for each blade
- Poisson Disk Sampling for evenly distributed blade placement
- Incremental mesh growth performed on CPU
- Compute Shader for offsetting vertices on GPU
(gist in the comments)
Grass Mesh with Wind 🌬️🌿
- Single LowLevelMesh with part for each blade
- Poisson Disk Sampling for evenly distributed blade placement
- Incremental mesh growth performed on CPU
- Compute Shader for offsetting vertices on GPU
(gist in the comments)
Happy 4th of July!!
- LowLevelMesh + compute shader for flag
- Burst particles + point light for fireworks
- Entity.playAudio(resource:) for sound
- MeshResource(extruding:) for text
(gist in the comments)
Happy 4th of July!!
- LowLevelMesh + compute shader for flag
- Burst particles + point light for fireworks
- Entity.playAudio(resource:) for sound
- MeshResource(extruding:) for text
(gist in the comments)
One LowLevelMesh with 50 procedurally growing branches. Each branch pre-allocates vertex/index space with offsets. Using multiple parts with index offsets organizes the bookkeeping which enables growing each branch incrementally
(gist in the comments)
One LowLevelMesh with 50 procedurally growing branches. Each branch pre-allocates vertex/index space with offsets. Using multiple parts with index offsets organizes the bookkeeping which enables growing each branch incrementally
(gist in the comments)
LowLevelMesh with multiple parts and material indexing
(gist in the comments)
LowLevelMesh with multiple parts and material indexing
(gist in the comments)
LowLevelMesh growing/shrinking branch
(gist in the comments)
LowLevelMesh growing/shrinking branch
(code in the comments)
LowLevelMesh sphere to circular plane morph using Metal compute shader
(code in the comments)
LowLevelMesh sphere to circular plane morph using Metal compute shader
(code in the comments)
LowLevelMesh sphere to rectangular plane morph using Metal compute shader
(code in the comments)
LowLevelMesh sphere to rectangular plane morph using Metal compute shader
(code in the comments)
Procedural tree with LowLevelMesh. Branching is still pretty simple, but figured I'd share before going too deep into growth direction algorithms
(code in the comments)
Procedural tree with LowLevelMesh. Branching is still pretty simple, but figured I'd share before going too deep into growth direction algorithms
(code in the comments)
Pancake effect using LowLevelMesh and a Metal compute shader. It progressively compresses all vertices towards the minimum Z bound
(code in the comments)
Pancake effect using LowLevelMesh and a Metal compute shader. It progressively compresses all vertices towards the minimum Z bound
(code in the comments)
Height map image to animated 3D terrain pipeline using LowLevelMesh, LowLevelTexture, and Metal compute shaders
Inspired by Apple's tutorial on the topic (link in replies)
(code in the comments)
Height map image to animated 3D terrain pipeline using LowLevelMesh, LowLevelTexture, and Metal compute shaders
Inspired by Apple's tutorial on the topic (link in replies)