Jonathan Lahue
banner
jclahoot.bsky.social
Jonathan Lahue
@jclahoot.bsky.social
Designer and Creative Coder •🔥✨👨🏼‍💻✨🔥 • Cat Dad 🐈 • Plant Dad 🌿 • Emoji Dad 👨‍🦰 • He/Him

🔮 jclahoot.com
Take that, inertia!!!

I'm rendering MORE tiles (I broke occlusion culling lol), and at 60FPS too!

Gotta go fast! 🦔💨🔥🔥🔥🔥🔥
December 8, 2025 at 3:07 AM
I finished enough courses on shaders and instanced meshes to start applying what I learned.

It's a big refactor, and I'm feeling a lot of resistance. I have to remind myself that I've done this kind of thing before! 😤

These 12K draw calls per frame won't fix themselves!
December 7, 2025 at 8:08 PM
Khoa is displaying his zine at the Zine Coop Virtual Party right now 🎈📚🥳 party.zinecoop.org

It's really fun! you have your own avatar, and you can walk around and, read zines, and chat with different people at the expo!
December 6, 2025 at 2:52 PM
Shader math is fun 😛
December 5, 2025 at 2:21 PM
I don't currently know how to do this, so I'm following @bruno-simon.bsky.social's Threejs Journey course!

Instanced meshes come with some architecture changes, so I'll also have to learn about 🏖 shaders 😎 to recreate what I've built so far.

This is one of the first shaders I wrote! 💙🩵🩷
December 4, 2025 at 5:18 PM
In ThreeJS (what I use to make my site 3D), you use meshes made of triangles to represent objects in a scene. 
📐

*Every single mesh* is a draw call to the GPU.



On my site, the CPU is yelling “DRAW MORE TRIANGLESSS!” to the GPU hundreds of thousands of times per second! 😅
December 3, 2025 at 4:51 PM
🔥🌻 So, I may have sunflowered too close to the sun!🌻🔥

After building an editing tool to add content to my website, the number of objects and tiles increased quite rapidly. The CPU does *not* like that, and now things are slow. 🐢

Let's try to fix it! 🧵...
December 3, 2025 at 3:50 PM
📺 Added a video section to my site! (jclahoot.com)

I just published something new for the first time in a while (a vlog about a failed DIY project), and figured I'd give it a little screening area.🍿
November 27, 2025 at 10:30 PM
This is hands down my favourite landscape on my website 💛
November 5, 2025 at 2:10 AM
Finally realized another big piece of the vision for jclahoot.com 🙌

Welcome to my little oasis on the web! A tiny village nestled within a cat shaped mountain. My personal website.😌

🌳🌳🏔️🐈🌳
November 1, 2025 at 4:49 PM
More drawings for my site 😌 IT IS SO CUTE AHHH! 🥹

(but also so laggy because too many sunflower 🥲)
October 23, 2025 at 1:42 AM
My deciduous tree drawing skills have improved! 🌳
October 22, 2025 at 3:16 PM
As a face sunscreen, Biore Aqua Rich, specifically the one from Japan. It doesn’t feel oily or leave a white cast. I didn’t really like applying sunscreen daily before using this one.

For body sunscreen I haven’t found anything like it unfortunately 🥲
October 16, 2025 at 3:01 PM
Today's site design inspo:
October 14, 2025 at 8:18 PM
The trees and bushes are really make my website start to come together! 😌 Building this is so much fun!
October 12, 2025 at 12:30 AM
The falling bug came back, final boss second phase style! 🥲

I guess I'll "do the wrong thing" and set up a falling timer 🙈 (until I get enough dev XP points to level up and beat this final boss of a bug 🐉💥🗡)

In the interim, I've started modelling the cat mountain! 🏔️
October 11, 2025 at 4:41 PM
PSA for anyone making a game or a 3D personal site:

Figure out the scale of things *BEFORE* building out content. Tiles were too tall, player height was too short, and now everything feels very bunched together 🥲.

New builds will run as if you're 5'9". Previously, things were toddler-sized 😆.
September 30, 2025 at 9:56 PM
bzzzz bzzzz
September 28, 2025 at 1:43 AM
So you can't just swap out a PNG for a GIF and get an animated texture in three.js.

I had to create a sprite sheet, and shift the texture each frame to align with the correct image. It was way easier to implement than I expected!
#gamedev
September 27, 2025 at 7:44 PM
Cooking up cute animations to show what things are interactive as you get close to them. 🐝

(not yet in production, I'm still cooking 😉)
September 27, 2025 at 7:26 PM
I love Montreal in the fall 😌
September 27, 2025 at 2:15 PM
Sometimes a bug is a relief. 😌

To improve performance, there's a check that runs to see if a tile is "exposed to the air", so that I know whether to render it or not.

It checks neighbouring tiles, but it doesn't (yet) consider partial-height neighbours. Everything is working as it should be.😌
September 22, 2025 at 4:21 PM
How did I get UP HERE?! 🧗‍♂️

(A movement system that allows you to ascend and descend plausibly jumping-height tiles, that's how!)
September 22, 2025 at 1:46 AM
Made raycasting 100x faster, and also noticing the side effect of that (little lag spikes when moving between tiles, still 30x faster than what I had before!)

I don't have a ton of experience doing this kind of thing, so it always gives me such a confidence boost! 🌻
September 20, 2025 at 3:27 PM
🥹✨😊 Lalala... moving icons around... lalala 🥹✨😊

*hits screenshot pit*

🌀🍃🔥👹🌀👹🔥🍃🌀
September 17, 2025 at 2:12 PM