's Avatar

@boristhebrave.bsky.social

Hobbyist procedural generation guy Made Tessera, a Unity plugin for #wavefunctioncollapse https://discord.gg/Enzu2rrJFD http://www.boristhebrave.com

314 Followers  |  44 Following  |  44 Posts  |  Joined: 31.10.2024  |  2.032

Latest posts by boristhebrave.bsky.social on Bluesky

Video thumbnail

Finally finished with the base of my road placement. Still some placeholder assets, but one step at a time. Thank you @boristhebrave.bsky.social for sylves, very easy to work with :) #indiedev #madewithunity #gamedevs

23.06.2025 23:08 β€” πŸ‘ 9    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

Why? There wasn't enough color contrast between cells without adding the border.

17.06.2025 00:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I've put the formulas elsewhere, but yes, it's basically making distances a bit shorter/longer in a random direction per-cell.

I think the border of the cells ends up piecewise parabolas.

There's a lot to experiment here, this is just random scales and rotations, but you could do other things.

16.06.2025 20:37 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The matrices are created something like:
T = [[rand_range(0.5, 1.5), 0],[0, rand_range(0.5, 1.5)]]
T = rotate(T, rand_range(0, 2*PI))

Then distance is
dist = (T @ (pixel_pos - point_pos)).magnitude

Note that M = T.transpose @ T for the way those slides expressed it.

16.06.2025 16:15 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Implicitly. This (and several other tweets) are just the result of taking an interesting idea and making a quick standalone generator using Cursor, and don't tie into my other work.

Finding an algorithm for the shapes seems tricky.

16.06.2025 06:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Yes, sorry, it's *anisotropic*, I got it wrong.
Yes, I pick a random scaling between 0.5 and 1.5 for each axis, then a random rotation. The points are evenly spread across the image. The maths works like those slides, though I came up with the idea and name independently.

16.06.2025 02:10 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Isotropic Voronoi cells.

I was trying to get a partition that feels a bit like how fields are laid out in the English countryside, it's not too far off.

16.06.2025 00:58 β€” πŸ‘ 83    πŸ” 6    πŸ’¬ 4    πŸ“Œ 1
Post image

Temperature is widely used in machine learning, but unexplored in procedural generation circles.

It's an extremely handy global control over the generation's luck/creativity/variance.

Article with interactive demo: www.boristhebrave.com/2025/05/07/f...

07.05.2025 10:18 β€” πŸ‘ 8    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
The A/B Not Taken

Thank you for your interest in FrostGPTβ„’.
Rate which response you like the most?



Response 1

Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth;

Then took the other, as just as fair,
And having perhaps the better claim,
Because it was grassy and wanted wear;
Though as for that the passing there
Had worn them really about the same,

And both that morning equally lay
In leaves no step had trodden black.
Oh, I kept the first for another day!
Yet knowing how way leads on to way,
I doubted if I should ever come back.

I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and Iβ€”
I took the one less traveled by,
And that has made all the difference.

Response 2

Two paths diverged in an autumn wood,
And sorry I could not journey both
And be one wanderer, long I stood
And gazed down one as far as I could
To where it curved in the undergrowth;

Then saw another, as equally fair,
And having perhaps the stronger claim,
Because it was verdant and needed wear;
Though as for that the passing there
Had worn them truly about the same,

And both that morning equally lay
In leaves no foot had trodden black.
Oh, I saved the second for a future day!
Yet knowing how path leads on to path,
I questioned if I should ever come back.

I shall be sharing this with a sigh
Somewhere decades and decades hence:
Two paths diverged in a wood, and Iβ€”
I took the one more traveled by,
And that has made all the difference.

The A/B Not Taken Thank you for your interest in FrostGPTβ„’. Rate which response you like the most? Response 1 Two roads diverged in a yellow wood, And sorry I could not travel both And be one traveler, long I stood And looked down one as far as I could To where it bent in the undergrowth; Then took the other, as just as fair, And having perhaps the better claim, Because it was grassy and wanted wear; Though as for that the passing there Had worn them really about the same, And both that morning equally lay In leaves no step had trodden black. Oh, I kept the first for another day! Yet knowing how way leads on to way, I doubted if I should ever come back. I shall be telling this with a sigh Somewhere ages and ages hence: Two roads diverged in a wood, and Iβ€” I took the one less traveled by, And that has made all the difference. Response 2 Two paths diverged in an autumn wood, And sorry I could not journey both And be one wanderer, long I stood And gazed down one as far as I could To where it curved in the undergrowth; Then saw another, as equally fair, And having perhaps the stronger claim, Because it was verdant and needed wear; Though as for that the passing there Had worn them truly about the same, And both that morning equally lay In leaves no foot had trodden black. Oh, I saved the second for a future day! Yet knowing how path leads on to path, I questioned if I should ever come back. I shall be sharing this with a sigh Somewhere decades and decades hence: Two paths diverged in a wood, and Iβ€” I took the one more traveled by, And that has made all the difference.

With apologies to Robert Frost.

04.05.2025 21:29 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I've updated the page with symmetry filtering

03.05.2025 17:40 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Exploring Rectangle Subdivisions Last week, I saw a talk on Vuntra City, a procedurally generated city with a fully explorable city. Developer Larissa Davidova explained that she settled on using Recursive Subdivision for the city…

Back to classic proc gen today. What ways are there of subdividing a rectangle? I enumerate the *irreducible* subdivisions, which imho are the most visually interesting.

www.boristhebrave.com/2025/05/03/e...

03.05.2025 11:43 β€” πŸ‘ 50    πŸ” 11    πŸ’¬ 3    πŸ“Œ 1
Preview
Running Tracery bots with LLMs Tracery bots were a fun, simple, way of making generative texts. They are basically an easy way to specify generative grammars via a simple JSON file format. There used to be a horde of fun little …

New Article: I'm still investigating the intersection of AI and classical proc gen. This time, I look at text generation with Tracery combined with LLMs.

www.boristhebrave.com/2025/03/08/t...

08.03.2025 23:54 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

After decades of general python terribleness for packaging, I'm discovering uv is actually good?
- fast
- does things sensibly (defaults to npm style .lock files)
- not dogmatic

08.03.2025 14:23 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Generating Tilesets with Stable Diffusion Recently I’ve been playing around more with gen AI techniques. I thought I’d try to generate a set of tiles that all connect together. It’s harder than it sounds – Stable Di…

New article, I tried using Stable Diffusion to make tiles for games.

The trick is to generate all the tiles in parallel, so they can share edge information from each other.

www.boristhebrave.com/2025/02/04/g...

05.02.2025 08:17 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

They are also easier to understand.

Also there's a lot of art in crafting a generator. Popular games tend to have those ineffibles done really well, it's hard to learn from other sources what works and what does not

08.01.2025 23:54 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Love this. I've decompiled a few games, you can learn a lot from even simple ones. Get in touch if you get stuck.

I suspect # means equals or not equals. It's not an operator in the manual, so I suspect it's a formatting glitch.

08.01.2025 23:43 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

I'll be at @unireps.bsky.social this Saturday presenting a new experimental pipeline to visually explore structured neural network representations. The core idea is to take thousands of prompts that activate a concept, and then cluster and draw them using MultiDiffusion. πŸ§΅πŸ‘‡

11.12.2024 23:18 β€” πŸ‘ 31    πŸ” 8    πŸ’¬ 2    πŸ“Œ 0

It would look deeper if it was a DAG including all abstract base classes that are duck-typable from each type.

25.12.2024 09:47 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Books That Changed My Life For many years, I always gifted people books for birthdays. It took a long time to realize that most people see them more as obligations than anything. I guess I was trying to recapture some of the…

I felt like writing a more personal blog post today.
www.boristhebrave.com/2024/12/24/b...

24.12.2024 20:38 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Trying with AddForce seems to rule it out, yes. I'm stumped, sorry.

17.12.2024 18:10 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

How is your car controlled.
My guess is still that the forces the joint is applying are not enough to overcome friction. So it doesn't rotate, except for in an early clip where you jerk the rope.
I think it's translating due to some other reason than joint forces.

17.12.2024 14:56 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Is it actually applying force at all? Do you see the velocity increase? What happens without ground friction.

It looks like it might be only moving due to position correction.

17.12.2024 14:15 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Each pair of red lines is one possibility, and the orange ones are the selected ones? You pick tiles in priority order, not randomized?
Looks neat

08.12.2024 21:50 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The superior solution is to have multiple settings files, which can override each other. That means you don't have to guess how others want to use your tool.
See every IDE ever.

06.12.2024 08:33 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

Ha, I returned to my #procjam 2023 project which I gave up because it wasn't working, made a one line change, and now it does.

www.boristhebrave.com/2023/12/03/g...

05.12.2024 18:15 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

If only such good homages were inevitable! I'm still waiting for the equivalent in the point and click genre.
But yes, it's situated more tightly in existing culture than HS.

03.12.2024 13:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I was gonna say Undertale, but Homestuck is unquestionably weirder and bigger impact (at least, on the cosplay metric).

03.12.2024 13:37 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

How do you cope with streaming? It's a platform where you cannot go back and fix your mistakes.

01.12.2024 09:52 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

So far, I've implemented 6 different grids using this system. They're all "game ready" - they efficiently support all operations you are likely to want do do, such as adjacencies or cell picking.

Let me know what tilings you'd like to see.

30.11.2024 23:14 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Substitution Tilings I’ve been working on adding aperiodic grids to Sylves. Aperiodic tilings are made tilings are made of a fixed set of tiles, rotated and translated to fully cover the plane.But they are not pe…

I've written up a new article on my implementation of aperiodic substitution tilings for my grid library, Sylves.

www.boristhebrave.com/2024/11/30/s...

30.11.2024 23:08 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 1

@boristhebrave is following 20 prominent accounts