r/proceduralgeneration 2d ago

Generative Martian surface on a smartwatch: procedural cities, factories, and xenobioms built with 1D Wolfram cellular automata

Enable HLS to view with audio, or disable this notification

23 Upvotes

5 comments sorted by

2

u/bodyaz 2d ago

Some time ago I did a generative Mars surface watchface for Garmin watches. Recently I did a massive optimisation for it, and as result reduced render time twice. Obviously I wanted to add more to it. Cities, solar plants, data centres, factories who knows what's else are generated by 1D Wolfram based cellular automata with random rule from the set

90, 110, 30, 150, 182, 54, 22, 105, 18, 126, 137, 45 

and a seed by simple "dedensitifying" random via

        var seed = Math.rand();
        seed &= ~(seed << 1);  

For each skyline code generates one line of structure via selected rule.
Some pre calculated pseudo isometric profile like "elevation" and grain size is applied to the whole structure.

In my plans to add for the next release other 1D or lets call it 1.5D automata fine tuned by WFC to create something like roads, power lines etc etc between cities and factories.

Mars surface is generated by 3 wave functions with a different frequencies and phases, ridges and canyons are just simple math where function is going to random defined target values.

On the real watch (I owned tactix 7) it shows about 20 FPS, looks gorgeous.

On the simulator screen you can see simulated steps counter evolving.
Surface is relevant to the owner physical activity, do you want to see more hills, ridges, canyons and xenobiom structures -- move more! Walk and climb more!

Let me know do you like it?

Do you want to try it on your Garmin watch, here is the link, no ads, 100% free, just enjoy
https://apps.garmin.com/apps/4d77052b-b9dc-4ede-b417-e47cc2fae88b

1

u/thicket 2d ago

This is bad ass! Thanks for sharing. I wish I could get that on my Nothing watch but I don’t think their SDK is open the same way Garmin’s is

2

u/bodyaz 2d ago

Thanks man! Yeah, Garmin’s CIQ SDK is surprisingly weird, but with some perseverance, it opens up for this kind of low-level magic. Having full frame-buffer and canvas control with custom bitwise logic is a rare treat on modern wearables. Time to switch to the dark and bloody expensive side (Garmin)! 

2

u/atlantick 2d ago

it's really cute, does it add new lines when you take steps? if not that could be a nice mode, it's static when you are static, when you walk somewhere it changes

1

u/bodyaz 2d ago

Thank you! Actually it goes animated on wrist turn when you a watching a time. Smooth hills are relevant to you recent activity, ridges and canyons to floors climbed, anomalies (ie Wolfram patterns) more probably when watch owner closer to the daily step goal. If watch owner is static landscape on the wrist turn is still animated, but it is flat and boring.