Florisium
@florisium.bsky.social
Sunlight meets color, and I’m hooked. Proof that subsurface scattering deserves more hype.
#flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox #simulationgames #subsurfacescattering
#flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox #simulationgames #subsurfacescattering
October 29, 2025 at 3:10 PM
Sunlight meets color, and I’m hooked. Proof that subsurface scattering deserves more hype.
#flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox #simulationgames #subsurfacescattering
#flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox #simulationgames #subsurfacescattering
Sometimes, the best things grow when you stop trying to control them. This tangled beast I grew up last week, thinkscreenshotsaturday is the best time to share it.
#screenshotsaturday #flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox #simulationgames #bee #honeybee
#screenshotsaturday #flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox #simulationgames #bee #honeybee
October 25, 2025 at 11:16 AM
Sometimes, the best things grow when you stop trying to control them. This tangled beast I grew up last week, thinkscreenshotsaturday is the best time to share it.
#screenshotsaturday #flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox #simulationgames #bee #honeybee
#screenshotsaturday #flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox #simulationgames #bee #honeybee
October 11, 2025 at 10:22 AM
There are, of course, plenty of limitations (obvious and not-so-obvious) - I’ll dive into those next time 😉
And finally, here are a few fresh in-game shots (and remember - the game is still about flowers! 🌸)
(16/16)
And finally, here are a few fresh in-game shots (and remember - the game is still about flowers! 🌸)
(16/16)
October 7, 2025 at 10:39 AM
There are, of course, plenty of limitations (obvious and not-so-obvious) - I’ll dive into those next time 😉
And finally, here are a few fresh in-game shots (and remember - the game is still about flowers! 🌸)
(16/16)
And finally, here are a few fresh in-game shots (and remember - the game is still about flowers! 🌸)
(16/16)
Bonus point: the same approach also gives cheap multi-point (and areal) lights support - in forward rendering, on mobile! 🎉🎉🎉
(15/16)
(15/16)
October 7, 2025 at 10:38 AM
Bonus point: the same approach also gives cheap multi-point (and areal) lights support - in forward rendering, on mobile! 🎉🎉🎉
(15/16)
(15/16)
Using this system, I built a small set (7 types) of analytical AO shapes that cover most in-game dynamic props.
The result is much more detailed and believable than the old texture-based version.
Left = old. Right = new.
(13/16)
The result is much more detailed and believable than the old texture-based version.
Left = old. Right = new.
(13/16)
October 7, 2025 at 10:37 AM
Using this system, I built a small set (7 types) of analytical AO shapes that cover most in-game dynamic props.
The result is much more detailed and believable than the old texture-based version.
Left = old. Right = new.
(13/16)
The result is much more detailed and believable than the old texture-based version.
Left = old. Right = new.
(13/16)
Side views of cylindrical shapes also needed separate math (and again, the right image shows the ray-traced reference).
(12/16)
(12/16)
October 7, 2025 at 10:36 AM
Side views of cylindrical shapes also needed separate math (and again, the right image shows the ray-traced reference).
(12/16)
(12/16)
Rectangular shapes are trickier since they have hard edges.
I ended up with a slightly different, yet still cheap, function that models the visibility per rectangle size - same logic as with cylinders.
(11/16)
I ended up with a slightly different, yet still cheap, function that models the visibility per rectangle size - same logic as with cylinders.
(11/16)
October 7, 2025 at 10:36 AM
Rectangular shapes are trickier since they have hard edges.
I ended up with a slightly different, yet still cheap, function that models the visibility per rectangle size - same logic as with cylinders.
(11/16)
I ended up with a slightly different, yet still cheap, function that models the visibility per rectangle size - same logic as with cylinders.
(11/16)
For a top-down projected cylinder, that relation is proportional to arctan(D/R), where R is the cylinder radius.
This separation (vertical+horizontal) produces results that are visually close to ray-traced truth - see the right image (distances and heights are not correlated on the images):
(10/16)
This separation (vertical+horizontal) produces results that are visually close to ray-traced truth - see the right image (distances and heights are not correlated on the images):
(10/16)
October 7, 2025 at 10:35 AM
For a top-down projected cylinder, that relation is proportional to arctan(D/R), where R is the cylinder radius.
This separation (vertical+horizontal) produces results that are visually close to ray-traced truth - see the right image (distances and heights are not correlated on the images):
(10/16)
This separation (vertical+horizontal) produces results that are visually close to ray-traced truth - see the right image (distances and heights are not correlated on the images):
(10/16)
The core 2D case is actually simple:
Imagine a flat occluder of width 2W(from -W to W) standing at height H.
The occlusion function looks like:
(cos(arctan((x - W)/H)) + cos(arctan((-x - W)/H))) / 2 + 1
In other words - the sum of light coming from the left and right gaps around the occluder.
(7/16)
Imagine a flat occluder of width 2W(from -W to W) standing at height H.
The occlusion function looks like:
(cos(arctan((x - W)/H)) + cos(arctan((-x - W)/H))) / 2 + 1
In other words - the sum of light coming from the left and right gaps around the occluder.
(7/16)
October 7, 2025 at 10:31 AM
The core 2D case is actually simple:
Imagine a flat occluder of width 2W(from -W to W) standing at height H.
The occlusion function looks like:
(cos(arctan((x - W)/H)) + cos(arctan((-x - W)/H))) / 2 + 1
In other words - the sum of light coming from the left and right gaps around the occluder.
(7/16)
Imagine a flat occluder of width 2W(from -W to W) standing at height H.
The occlusion function looks like:
(cos(arctan((x - W)/H)) + cos(arctan((-x - W)/H))) / 2 + 1
In other words - the sum of light coming from the left and right gaps around the occluder.
(7/16)
For the first version of the system, I used static textures to approximate the occlusion shape of some typical primitives.
Just 3 texture types - pulled on for every moving object in the game (could be more than 1 shape per object).
It worked!
Just 3 texture types - pulled on for every moving object in the game (could be more than 1 shape per object).
It worked!
October 7, 2025 at 10:30 AM
For the first version of the system, I used static textures to approximate the occlusion shape of some typical primitives.
Just 3 texture types - pulled on for every moving object in the game (could be more than 1 shape per object).
It worked!
Just 3 texture types - pulled on for every moving object in the game (could be more than 1 shape per object).
It worked!
4. Apply some shadow (occlusion) pattern on the area and draw the resulting geometry.
5. And yeah - do the above for every occlusion-receiver pair 😅
(4/16)
5. And yeah - do the above for every occlusion-receiver pair 😅
(4/16)
October 7, 2025 at 10:30 AM
4. Apply some shadow (occlusion) pattern on the area and draw the resulting geometry.
5. And yeah - do the above for every occlusion-receiver pair 😅
(4/16)
5. And yeah - do the above for every occlusion-receiver pair 😅
(4/16)
So, I went back in time and revived a classic: blob shadows - the technique used in early 3D games that often mimicked ambient occlusion rather than true shadows.
(3/16)
(3/16)
October 7, 2025 at 10:29 AM
So, I went back in time and revived a classic: blob shadows - the technique used in early 3D games that often mimicked ambient occlusion rather than true shadows.
(3/16)
(3/16)
A bit technical thread 🧵
I’ve been improving the in-game ambient occlusion system - and ended up with something I call:
Blob-based Analytical Ambient Occlusion on Primitives
Here’s what it does to the final image:
(more examples later in the thread)
(1/16)
I’ve been improving the in-game ambient occlusion system - and ended up with something I call:
Blob-based Analytical Ambient Occlusion on Primitives
Here’s what it does to the final image:
(more examples later in the thread)
(1/16)
October 7, 2025 at 10:28 AM
A bit technical thread 🧵
I’ve been improving the in-game ambient occlusion system - and ended up with something I call:
Blob-based Analytical Ambient Occlusion on Primitives
Here’s what it does to the final image:
(more examples later in the thread)
(1/16)
I’ve been improving the in-game ambient occlusion system - and ended up with something I call:
Blob-based Analytical Ambient Occlusion on Primitives
Here’s what it does to the final image:
(more examples later in the thread)
(1/16)
So, how many flowers on one plant is enough for you?
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
September 20, 2025 at 11:31 AM
So, how many flowers on one plant is enough for you?
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
Cozy corner inspiration for autumn.
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
September 13, 2025 at 10:24 AM
Cozy corner inspiration for autumn.
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
Who’s ready to plant these little sprouts?
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
September 6, 2025 at 12:36 PM
Who’s ready to plant these little sprouts?
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
A Fresh Start, Frame by Frame 🏠
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
August 30, 2025 at 6:48 PM
A Fresh Start, Frame by Frame 🏠
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
#florisium #flowers #nature #homeplants #cozygame #indiegame #screenshotsaturday
In the dark, every flower finds its light.
Music: Libeccio by Christo4us
(all shots are captured using the in-game video recorder)
#flowers #mobilegame #sandbox #cozygame #gamedev #plants #timelapse
Music: Libeccio by Christo4us
(all shots are captured using the in-game video recorder)
#flowers #mobilegame #sandbox #cozygame #gamedev #plants #timelapse
August 9, 2025 at 12:09 PM
In the dark, every flower finds its light.
Music: Libeccio by Christo4us
(all shots are captured using the in-game video recorder)
#flowers #mobilegame #sandbox #cozygame #gamedev #plants #timelapse
Music: Libeccio by Christo4us
(all shots are captured using the in-game video recorder)
#flowers #mobilegame #sandbox #cozygame #gamedev #plants #timelapse
Check out these awesome shots directly from the in-game photo mode!
"Bloom under the Moon"
#flowers #mobilegame #sandbox #cozygame #gamedev
"Bloom under the Moon"
#flowers #mobilegame #sandbox #cozygame #gamedev
August 6, 2025 at 12:02 PM
Check out these awesome shots directly from the in-game photo mode!
"Bloom under the Moon"
#flowers #mobilegame #sandbox #cozygame #gamedev
"Bloom under the Moon"
#flowers #mobilegame #sandbox #cozygame #gamedev
Florisium is a peaceful mobile sandbox game where every flower is meticulously simulated, ensuring no two are ever the same
#flowers #mobilegame #sandbox #cozygame #gamedev
#flowers #mobilegame #sandbox #cozygame #gamedev
August 5, 2025 at 11:52 AM
Florisium is a peaceful mobile sandbox game where every flower is meticulously simulated, ensuring no two are ever the same
#flowers #mobilegame #sandbox #cozygame #gamedev
#flowers #mobilegame #sandbox #cozygame #gamedev
Welcome to the world of Florisium - a place where every flower is one of a kind and grown just for you
#flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox
#flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox
August 4, 2025 at 10:53 AM
Welcome to the world of Florisium - a place where every flower is one of a kind and grown just for you
#flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox
#flowers #mobilegame #cozygame #flowerlovers #homeplant #sandbox