Jonathan Lahue's Avatar

Jonathan Lahue

@jclahoot.bsky.social

Designer and Creative Coder โ€ข๐Ÿ”ฅโœจ๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ปโœจ๐Ÿ”ฅ โ€ข Cat Dad ๐Ÿˆ โ€ข Plant Dad ๐ŸŒฟ โ€ข Emoji Dad ๐Ÿ‘จโ€๐Ÿฆฐ โ€ข He/Him ๐Ÿ”ฎ jclahoot.com

97 Followers  |  97 Following  |  966 Posts  |  Joined: 01.05.2023  |  2.2672

Latest posts by jclahoot.bsky.social on Bluesky

Illustration of my website, with a cat shaped mountain, a yellow field, and distant lands. A small rectangle is overlaid to represent the screen.

Illustration of my website, with a cat shaped mountain, a yellow field, and distant lands. A small rectangle is overlaid to represent the screen.

A depiction of rendering chunks. Hexagonal chunks that intersect with the screen are rendered, while chunks that arenโ€™t visible on screen arenโ€™t rendered.

A depiction of rendering chunks. Hexagonal chunks that intersect with the screen are rendered, while chunks that arenโ€™t visible on screen arenโ€™t rendered.

It might even get *faster* once I set up chunking.

Right now, most everything is rendered, even if it isnโ€™t on screen. (If even one instance is visible, the whole instanced mesh is rendered)

By splitting the world into chunks, most areas that arenโ€™t visible wonโ€™t be rendered at all.

09.12.2025 21:08 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

๐ŸŒณ๐ŸŒป๐Ÿˆ Got entities hooked back up! Shields are holding at 100-120 FPS (up from about 10-12).

Billboarding might be tricky since I can't just run lookAt() on every mesh anymore, but I'm not too worried.

Can't wait to hook back up interactions + fall detection so I can merge this!

09.12.2025 20:22 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

it's also such a perfect gesture to symbolize resignation, "i'm out," etc, I bet it gets adopted by humans. kids miming taking their headset off when particularly exasperated, occasionally falling over for extra emphasis

08.12.2025 09:31 โ€” ๐Ÿ‘ 3129    ๐Ÿ” 83    ๐Ÿ’ฌ 23    ๐Ÿ“Œ 6

New Bruno portfolio just dropped! ๐ŸŽ‰ The level of detail and interactivity is *chefs kiss*!

09.12.2025 14:49 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
A 3d world comprised of hexagonal tiles. There's grass, darker grass, and rocky outcrops that can be seen, as well as structures in the distance.

A 3d world comprised of hexagonal tiles. There's grass, darker grass, and rocky outcrops that can be seen, as well as structures in the distance.

Terrain rendering is back up and running, and it's still fast! ๐Ÿ˜Œ

09.12.2025 02:03 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

It's limited by the CPU clock speed right now; even my laptop is struggling ๐Ÿ™ƒ

I should have a fix out in the next few weeks; it's a pretty big change though!

08.12.2025 15:05 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Thank you! ๐Ÿ˜Š I'm curious, did any part of the phone experience in particular feel more difficult?

08.12.2025 14:27 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

JCLaHoot (maybe one day I'll have an alt!)

08.12.2025 03:08 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A barren version of my website showing only blank white tiles, stacked and making up terrain.

A barren version of my website showing only blank white tiles, stacked and making up terrain.

my website, a 3D landscape of terrain with trees, grassy areas and rocky outcrops. A lush canopy surrounds a grassy area in the centre.

my website, a 3D landscape of terrain with trees, grassy areas and rocky outcrops. A lush canopy surrounds a grassy area in the centre.

a FPS counter showing 60 frames per second.

a FPS counter showing 60 frames per second.

a git client screenshot showing a new performance branch. The last commit has a hedgehog emoji, an air "whoosh" emoji, and 5 fire emojis, followed by "FUCK YEAH!..."

a git client screenshot showing a new performance branch. The last commit has a hedgehog emoji, an air "whoosh" emoji, and 5 fire emojis, followed by "FUCK YEAH!..."

Take that, inertia!!!

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

Gotta go fast! ๐Ÿฆ”๐Ÿ’จ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

08.12.2025 03:07 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Hello Sabrina's publicist! I am also on David!

08.12.2025 02:45 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A peek at the Renderer object in the console, showing 12000 draw calls and 200000 triangles being drawn.

A peek at the Renderer object in the console, showing 12000 draw calls and 200000 triangles being drawn.

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!

07.12.2025 20:08 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
The lobby of the zine coop party, where you walk around as a virtual avatar and explore zines from all around the world. The building is a pixel art, industrial setting, with books, billboards, and instructions on various surfaces. you can also use the live chat.

The lobby of the zine coop party, where you walk around as a virtual avatar and explore zines from all around the world. The building is a pixel art, industrial setting, with books, billboards, and instructions on various surfaces. you can also use the live chat.

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!

06.12.2025 14:52 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

A good Christmas playlist has all the classics, as well as a bunch of unhinged really weird ones thrown into the mix. ๐ŸŽ„

06.12.2025 14:22 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

Shader math is fun ๐Ÿ˜›

05.12.2025 14:21 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Video thumbnail

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! ๐Ÿ’™๐Ÿฉต๐Ÿฉท

04.12.2025 17:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The workaround is to use something called InstancedMeshes instead of regular meshes.

Instanced meshes are bulk orders of similar meshes. So I could theoretically turn my 10-15K draw calls per frame into just 2!

04.12.2025 17:06 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
An angry (but cute) CPU on the left, and a cute GPU on the right. 

The CPU has tons of speech bubbles, saying: Plz draw triangles. More triangles! Tryangles!! Where are my triangles?!? (repeated 100000 times per second)

The GPU is saying: Lalala. I love drawing triangles! It's so easy! Lalala. Does CPU know that I do bulk orders lol???

An angry (but cute) CPU on the left, and a cute GPU on the right. The CPU has tons of speech bubbles, saying: Plz draw triangles. More triangles! Tryangles!! Where are my triangles?!? (repeated 100000 times per second) The GPU is saying: Lalala. I love drawing triangles! It's so easy! Lalala. Does CPU know that I do bulk orders lol???

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! ๐Ÿ˜…

03.12.2025 16:51 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A large field with hundreds of sunflowers and a white windmill with a blue roof in the middle. The field can be seen through a break in the treeline.

A large field with hundreds of sunflowers and a white windmill with a blue roof in the middle. The field can be seen through a break in the treeline.

To the left is a field of sunflowers with a windmill in the middle. To the right is an elevated forest, with a path leading up to it and a waterfall. At the highest point is a rocky outcrop, with a flag on it. The flag is white with a pink heart in the middle.

To the left is a field of sunflowers with a windmill in the middle. To the right is an elevated forest, with a path leading up to it and a waterfall. At the highest point is a rocky outcrop, with a flag on it. The flag is white with a pink heart in the middle.

๐Ÿ”ฅ๐ŸŒป 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! ๐Ÿงต...

03.12.2025 15:50 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
An embroidery hoop containing an embroidered aerial view landscape inspired by vibrant Autumn woods. It depicts trees rich in oranges, reds and golds, winding blue streams, a country lane and wild moorland animals.

An embroidery hoop containing an embroidered aerial view landscape inspired by vibrant Autumn woods. It depicts trees rich in oranges, reds and golds, winding blue streams, a country lane and wild moorland animals.

I've now opened a raffle for this embroidery landscape - direct link below! The listing has full details for the reason and how to enter, the process, etc. This is a vital moment for me so any post engagement/shares will be extremely helpful! victoriaroserichards.co.uk/collection/a... #art

03.12.2025 15:18 โ€” ๐Ÿ‘ 802    ๐Ÿ” 223    ๐Ÿ’ฌ 14    ๐Ÿ“Œ 11

There are so many courses with substantial Black Friday sales, so now is your chance to get your hands on them, support the creators, and upskill.

Stock up now while they're all so heavily discounted, and you'll have great content to sink your teeth into year-long.

๐Ÿงต Some of the best:

28.11.2025 05:32 โ€” ๐Ÿ‘ 11    ๐Ÿ” 4    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Not me posting this and immediately noticing that I forgot to fix the peaking audio ๐Ÿ˜… REUPLOADING

27.11.2025 22:58 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
A view of a yellow couch, a carpet, and a projector screen, showing the words "cutting your losses" on a moody background. There's trees and greenery in the distance.

A view of a yellow couch, a carpet, and a projector screen, showing the words "cutting your losses" on a moody background. There's trees and greenery in the distance.

highlight on a media area with a yellow couch and a screen. In the surrounding area there are trees, a fountain and a post office.

highlight on a media area with a yellow couch and a screen. In the surrounding area there are trees, a fountain and a post office.

๐Ÿ“บ 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.๐Ÿฟ

27.11.2025 22:30 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image Post image Post image Post image

"there are no third spaces anymore" wrong. blast furnace

25.11.2025 00:59 โ€” ๐Ÿ‘ 8327    ๐Ÿ” 2094    ๐Ÿ’ฌ 88    ๐Ÿ“Œ 137

Khoa set up a shop with Square. Bonus points for also being able to use it to accept credit/debit cards at markets.

17.11.2025 23:08 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Video thumbnail

I think `animation-composition: accumulate` is gonna see more action with `random()`, as it's like "take what you already got as a value and augment it rather than replace it".

Here's a parallax thing where randomly-fixed-positioned stars are moved different amounts (with a scroll-driven animation)

14.11.2025 16:22 โ€” ๐Ÿ‘ 115    ๐Ÿ” 18    ๐Ÿ’ฌ 5    ๐Ÿ“Œ 0

The nested and interconnected nature of Wikipedia would feel so cool with these transitions!

08.11.2025 14:36 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Ooh! I prefer the simplicity of the first one, but the negative space nose might cause problems in some other layouts. Composition wise I do prefer the stoat on the left, facing the right side though.

Theyโ€™re both really good!

08.11.2025 12:59 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
A scene on jclahoot.com, in a painted style. A break in the trees is shown, revealing a field of sunflowers and a white windmill with a blue tiled roof in the middle.

A scene on jclahoot.com, in a painted style. A break in the trees is shown, revealing a field of sunflowers and a white windmill with a blue tiled roof in the middle.

This is hands down my favourite landscape on my website ๐Ÿ’›

05.11.2025 02:10 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Spicy pho too!

05.11.2025 01:33 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

So many of them are suburbs!

03.11.2025 13:19 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@jclahoot is following 20 prominent accounts