There have been a myriad chances that fell into line together, in order for us to be sitting here — me writing this, and you reading it.
But as incredible the odds are to result in you and I, the chances that things would look "close enough" — on the scale of things, remember - are a bit higher — if the dice were to be rolled again.
Yeah, we might not end up with "humans," or with the same ecology and climate on whatever planets formed from the chaos, but that's the point i'm trying to make — with all likelihood, the laws of physics having as strong a say as they do, we'd likely still have stars, planets, nebulae and all of those interstellar building sites.
It'd be really fun to "push the button" repeatedly on the random mix bag of bits that the big bang gave way to — just to see what crazy stuff gets turned out of the chaos — the many millions of chance choices made along the way, having only a few basic rules of physics in place to govern the resultant output.
That could practically be more than a bit problematic for a number of reasons that need not spelling out, but on a way, way smaller scale, that's kind of what Bleeptrack is up to, with her PicoPlanet series of procedurally generated PCB layouts.
In a nutshell, procedural generation is letting a computer generate an output, with the processes it uses to do so being governed by a set of rule, or criteria. Depending on how strict the rules are, running the same procedural generation code might give the same results, or a looser "interpretation" of the guideline parameters might lead to different outputs.
Examples of where we all too often see procedural generation are in things like the pseudo-random computer game maps, that form a navigable play map, which is still bound by an overarching set of parameters — it should be of X area, it should have areas that are not impossible to reach, or even it should feature "hidden" power-ups, etc., the frequency of which is denoted by yet another parameter.
Intended to take the load off of a human designer, using procedural generation for such areas is a great idea, that helps keep things fresh for the players as well — with the right tuning, you could almost guarantee a never-ending set of world maps for a user to navigate and play. That's value for money!
If you wanted a bit more of a direct example of what procedural generation can be like to play with, Bleeptrack has a really fun, browser-based demo of what this magic can do, when targeted at "circuit-like" drawings, with an art generator developed for the 35th CCC event.
Simply feed it some text (or not!), tune the parameters such as line width, font size and scale, and with the click of a button, a never-ending stream of procedurally generated, circuit-based art will be released for your viewing pleasure.
We've thrown it a few "HACKSTER.IO" examples down below, and save for inverting the colors used — so as to better sit within this white background — what you see is the direct output from the generator.
Although the Thevenin equivalent of these circuits might be leave some scratching their heads, they aren't designed with practical deployment — just yet.
Let's take a whirl around the PicoPlanet (solar) system!
PicoPlanets is a step towards practical, procedurally generated circuits however, and from a cursory glance at just two of the boards it has "designed" below, it's a step in the right direction!
As shown above, the right hand side of the PicoPlanets boards is 'static' — and is a hand-routed implementation of a Microchip SAM D21 development board, the core of which is shown below in schematic implementation.
It's a pretty rock-solid implementation of the SAM D21, and while it sure doesn't feature as many free I/O pins as say, an Arduino, that's not the type of flexibility offered by this project!
With the fairly standard part of the board quickly looked over, our attention turns to the unique aspects of the PicoPlanet boards — the procedurally generated arrangement of planet-based artwork, that also cleverly hides the three touch-sense buttons that are shown in the schematic, connected to the SAM D21 as button1, 2 and 3.
As far as my uninformed eye can make out, the procedural generation seem sto apply to the "planets" themselves — with no two exact copies of each appearing on any of the five generated board designs, along with the stars, and the background upon which they all sit.
From looking at the animation above, where Bleeptrack demos some of the generated layouts, we can infer some of the "rules" used to generate the layout artwork. For example, the locations of the planets seem to be fixed along the central axis of the board, so as to ensure they can be connected to the tracks running to the sense pins on the SAM D21.
Beyond that constraint though, the procedural generation looks to be free to take control of the driving seat, with the planet style, star placement, and background "galaxy" design all being pretty randomly laid out with each iteration.
If you want to take the PicoPlanet procedural code out for a spin, and create your own galaxy of gold plated PCB planets, Bleeptrack has released it over on GitHub for the PicoPlanets project.
For now, this might be the only way you can get your hands on one of these beautiful blue boards — the short run of five copies of each of the initial 10 designs sold out in record time, and are already in the hands of those eager buyers!
We're keen to see what procedurally generated PCBs are yet to come from Bleeptrack! Hopefully, we'll be a bit quicker next time, and manage to cop our own set of these beautiful boards!