Sign in

R H

@flinflonimation.bsky.social
151 followers 256 following 1K posts

Programmer, in Winnipeg, made a couple video games. Worked in VR. Open to freelance for Godot tech art. He/Him Some games here: rhill.itch.io Created Godot Egg Tools: rhill.itch.io/godot-egg-tools

PostsRepliesMedia
R H @flinflonimation.bsky.social · 10h
Okay, I made a pull request for this.
010
R H @flinflonimation.bsky.social · 04/10/2026
I think I fixed an obscure rendering bug in Godot. (You would only encounter it if you used BONE_INDICES in a shader on a mesh that has ARRAY_FLAG_USE_8_BONE_WEIGHTS set.) Demonstrated here, these cubes are supposed to look the same, with each face bound to one bone, not stripes along two faces.
Two cubes, both with one magenta face.Two cubes, one has a magenta face, the other has magenta stripes on two faces.
110
R H @flinflonimation.bsky.social · 04/10/2026
If I recall correctly, the dialogue here is, “Noot! Noot!”
050
R H @flinflonimation.bsky.social · 01/10/2026
Where it fails is not all my camera angles were solved so there's major gaps in coverage. I tried photographing on plexiglass to get a view of the bottom but I guess Meshroom didn't recognize that as the same thing.
Bottom of teapot showing the textures are bad.
010
R H @flinflonimation.bsky.social · 01/10/2026
Okay, took another run at texturing from photogrammetry. Since I have cameras aligned with the photos I can project multiple UVs from each camera view and then in the shader blend between each of those based on masks. Then I can texture paint the masks to blend between different angles.
TeapotBlender shader nodes.

Multiple textures each using a different UVMap, feeding into Mix nodes controlled by the separated RGB values from a texture name Mask and a texture named Mask2
120
R H @flinflonimation.bsky.social · 30/09/2026
Also tried out some audio stuff in Godot, but I don't know what I'm doing with audio compared to visuals. Bluesky doesn't have express support for audio files so I'm trying a video file.
011
R H @flinflonimation.bsky.social · 29/09/2026
Tried out a couple more photogrammetry objects. I thought I was being clever shooting these on glass to get a view of the bottom but I think the reflections kept messing with the solve.
teapot and banana
000
R H @flinflonimation.bsky.social · 28/09/2026
Neuromance and Neuromancer
000
R H @flinflonimation.bsky.social · 26/09/2026
Okay, I went through a process of making a low-poly mesh based on Meshroom photogrammetry. There's some parts of the texture that could use cleaning up, but I think I've got the hang of the process.
low-poly 3D model of a toy cymbal monkey
120
R H @flinflonimation.bsky.social · 25/09/2026
I think I have stumbled upon the correct solution. I need to invert those shift X and shift Y values. Set negative to positive and vice versa and now the mesh will nicely align with the image overlaid from the position of the camera. No eyeballing necessary.
000
R H @flinflonimation.bsky.social · 25/09/2026
Does this mean you can get the UV mapping on the lightmap? Like I could tell they used UV2 but scaled and offset per meshinstance and I couldn’t find where to track down that info.
100
R H @flinflonimation.bsky.social · 22/09/2026
On the down-side, project UVs won't account for the offset and scale, which undermines my goal with this approach. I liked the idea of manually making a low-poly mesh and then projecting the photos from the position the photo was really taken.
100
R H @flinflonimation.bsky.social · 22/09/2026
I notice the Shift X and Shift Y on the camera settings is non-zero and varies between solves. Zeroing out the Shift isn't enough to make the image line up without the offset and scale. And copying the same offset between solves doesn't work.
110
R H @flinflonimation.bsky.social · 22/09/2026
From further tests in Blender, it has something to do with camera settings or how Blender displays images. If I overlay images on generated mesh, they don't line up. If I offset and scale the image until they do line up, then aligning points from different camera angles starts to work.
Settings displaying image on a camera in Blender. Offset is (0.004, -0.101) and scale is 1.171
100
R H @flinflonimation.bsky.social · 22/09/2026
Though I'm perplexed that the camera positions could be this far off without the resulting textured mesh being much much worse. I've got to be missing something.
100
R H @flinflonimation.bsky.social · 22/09/2026
Hmm. Tried using the source images as backgrounds for the cameras in Blender, and manually identifying an intersecting point on the monkey's left eye. But maybe these camera positions aren't accurate, because aligning it for two of them doesn't converge at the right spot for the third camera.
face of the toy monkey with orange lines on it
100
R H @flinflonimation.bsky.social · 22/09/2026
If you do photogrammetry with Meshroom, the intermediate steps provide depth map textures for each camera and camera positions. So instead of using the final mesh, I can project that depth map from the camera position and get these glitchy versions.
010
R H @flinflonimation.bsky.social · 21/09/2026
I did another test with boxes spaced 1 meter apart down a hallway, and it did display evenly-spaced planes where they should be. So maybe the monkey is just smaller than I could be precise. I was doing photogrammetry with only three photos.
a messy bunch of verticies but three blank quads spaced along it
110
R H @flinflonimation.bsky.social · 21/09/2026
This is from me trying to get position from Meshroom depth and camera positions but my math must still be off or I think they'd overlap better.
Three cameras projecting the three monkeys together.
120
R H @flinflonimation.bsky.social · 21/09/2026
"Be not afraid"
three cymbal monkey toys intersecting and not quite aligned
330
R H @flinflonimation.bsky.social · 21/09/2026
I went through the process of building Godot from source, so I can theoretically mod the engine now. Just the small matter of finding something I understand enough to change for the better.
010
R H @flinflonimation.bsky.social · 18/09/2026
Back in the NFT heyday, there was a game trailer that included shots of characters with weapons running towards monsters, but no actual combat. Like they were banking on viewers assuming there would be combat once they got there.
001
R H @flinflonimation.bsky.social · 17/09/2026
It does show a single blank frame between scenes so I won”t be able to completely eliminate editing software this way.
010
R H @flinflonimation.bsky.social · 17/09/2026
I’m making another short film in Godot. I’ll set up each shot as its own scene file. Previously I would export each scene individually but this time I tried chaining them together where one scene loads the next.
120
R H @flinflonimation.bsky.social · 12/09/2026
I guess often logos had to work in black and white, but then I probably would have outlined them instead of having black sparkles? Plus the stripe reflection is maybe enough to sell it as a shiny bottle?
000
R H @flinflonimation.bsky.social · 12/09/2026
It’s an interesting choice that the ketchup bottle seems to be sparkling in black. Is that motivated by making it work against a white background, but that isn’t how sparkles usually work.
121
R H @flinflonimation.bsky.social · 11/09/2026
Making the most AI-coded paperclip I can
Glowing paperclip against a background of sparkles and purple gradient
000
R H @flinflonimation.bsky.social · 10/09/2026
Tried out some photogrammetry on a pepper but it only managed to get the stem. I deliberately had a plain white background so I could try out the masking in Meshroom, but that might have also have lead to it having insufficient tracking points.
Render of a small part of a pepper in Blender.
000
R H @flinflonimation.bsky.social · 07/09/2026
It looks like remeshing can avoid it. It was a photoscan so the topology wasn't great to begin with.
010
R H @flinflonimation.bsky.social · 07/09/2026
Statues
Close up of a statue with teeth making an awkward grin
010
R H @flinflonimation.bsky.social · 07/09/2026
I'm getting "Bone Heat Weighting: failed to find solution for one or more bones" messages when I try to set up a rig with automatic weights in Blender which of course is making me think how could I make my own automatic weight algorithm.
111
R H @flinflonimation.bsky.social · 07/09/2026
A lot of times when someone is criticized for using generated images they fall back on an attitude that the things they said were real, and the picture doesn't matter. But it apparently mattered enough that they needed one to exist.
000
R H @flinflonimation.bsky.social · 07/09/2026
It was performing in the genre it was trained to replicate, and the non-existence of the X-ray would not prevent the performance. You see similar examples with the "turn PDF into podcast" with no PDF or "critique my song" but it's a fart noise.
100
R H @flinflonimation.bsky.social · 07/09/2026
I forget where I read "genre performance" as a description of generative AI but they were talking about a study of a model used to analyze X-rays. They tested it by providing it with no X-ray at all, and it continued to provide detailed analysis of the non-existent X-ray.
100
R H @flinflonimation.bsky.social · 07/09/2026
Like, the genre of post they wanted to make was one with a picture of Eunice Foote and it was inconvenient that one did not exist.
100
R H @flinflonimation.bsky.social · 07/09/2026
Obsession with “engagement” on social media will dovetail with gen AI to invent nonexistent facts to conform with the desired genre performance.
120
R H @flinflonimation.bsky.social · 07/09/2026
All this was set off because I figured out a method In Blender for slicing open the mouth on these statues.
000
R H @flinflonimation.bsky.social · 07/09/2026
Same statue with a big "Uber Driver Sucked Me Off??" label
100
R H @flinflonimation.bsky.social · 06/09/2026
Replica of an ancient Greek statue sitting in the fountain, looking a little upset about it. The image is reduced to four colours and heavily dithered.
150
R H @flinflonimation.bsky.social · 06/09/2026
www.nfb.ca/film/wavemak...
nfb.ca
Wavemakers
This feature documentary takes us on an intriguing human and musical discovery of the most expressive of electronic instruments, the Ondes Martenot. A group of Martenot aficionados pursues …
000
R H @flinflonimation.bsky.social · 06/09/2026
Watching this documentary on the ondes Martenot and someone is introduced with the title of “electronic luthier”
100
R H @flinflonimation.bsky.social · 05/09/2026
This does have ambient occlusion baked into the vertices plus refracts the ray slightly, which both make it easier to perceive the surface than just going straight into raymarching.
050
R H @flinflonimation.bsky.social · 05/09/2026
"In fact, in every way the penny wooden toy is as superior to a sixpenny metal one, as the Wooden Warship 'Victory' is to H.M.S. 'Horrible' — Ironclad." — Gordon Craig's Book of Penny Toys
000
R H @flinflonimation.bsky.social · 04/09/2026
030
R H @flinflonimation.bsky.social · 03/09/2026
The shader for line thickness is easily repeatable. I'm less sure about the looping animation. I apparently gave myself a hard time by having each one holding the next one down, so it's got some weird rickety things holding it together.
010
R H @flinflonimation.bsky.social · 03/09/2026
Ouroboros
130
R H @flinflonimation.bsky.social · 01/09/2026
I’ve just been doing sdf generation the dumb way with get pixel and put pixel in a loop but a 4096 texture is taking a very long time to complete and I might need to make a compute shader version for the future.
000
R H @flinflonimation.bsky.social · 31/08/2026
I gave it a more YouTubey thumbnail with a pointing arrow.
The text "NOT A PARTICLE SYSTEM" and an arrow pointing at a non-particle-system
161
R H @flinflonimation.bsky.social · 30/08/2026
I made a demo video about that sparkle mesh technique and also posted the mesh generating script and some shaders on Codeberg:
youtube.com
Sparkle Mesh in Godot
YouTube video by r hill
040
R H @flinflonimation.bsky.social · 30/08/2026
Fireworks. Also not a particle system.
020