I wish my blog post had more details on the technique, but basically I am pre-computing Poisson-disc distributions at several (255) density levels in such a way that the samples are adaptive (ie: all samples from levels 1-n are also samples at the level n+1.
I'm then storing that information in a texture, and reading from it in a shader to know whether or not to draw a stipple.
The tricky part is to figure out how to do that on arbitrary 3D surfaces.
Mike's stuff is awesome. I just watched the animation of one of the optimum solutions and I realized that all the placements are interdependent on each other. It's a holistic approach, instead of an algorithmic approach.
A while ago (file timestamps say 2005), a colleague of mine was studying CCR5, a cell surface receptor which HIV exploits to enter cells. She had taken electron microscope pictures of the distribution of CCR5 over the surface of a cell. By eye, it was clear that it was distributed evenly, but it was suspiciously even - not random, but well spread out, exactly as in these hyperuniform cases.
I wrote some Python scripts to calculate Ripley's K-function, which looked like a good way of quantifying this:
As a biologist, I'm not surprised. I'm sure there was something quite meaningful happening but most biologists lack the fortitude to venture into unknown areas or new disciplines. Its a highly risk-averse crowd.
People working in Biology usually are not Math savy and are proud of it. Many of them are there to run away from other scientific Math intensive fields.
Anyone suggesting anything along this lines will be immediately shut down just because of that.
Still got those images? I've been really interested, since I first heard Torquato mentioning hiperuniform patterns, circa 2010, what kinds of natural patterns exhibit it...
Amazing! This seems very similar to something I was taught about during my post-grad (and regret not pursuing, if only for this cool effect - https://en.m.wikipedia.org/wiki/Pinocchio_illusion). These were cortical maps ir cortical receptive fields in lower level sensory cortex of animals, for example barrel cortex of rats that processes whisker input. Areas that were sensitive to different deflection angles seemed to self-organize like this, with seemingly random organization looking at high frequency features, but becoming more ordered at lower frequency features. Specifically, "pinwheels" seemed to form, areas where all different deflection angles were represented in the map, and all these areas touched into a single vanishing point.
Like in the article the paper referenced below openly speculates about the use of organizational structures like this.
I don’t think low-discrepancy sequences have quite the same kind of structure as these “hyperuniform” distributions. There don’t seem to be any papers which explicitly compare them though, https://scholar.google.com/scholar?q=hyperuniformity+halton
You can see a pretty concrete example of this in forests, the trees are all densely packed, and random- and thus fall under hyperuniform. (as far as I can tell, anyway. Haven't exactly tested it, but it sure looks hyperuniform.) I've noticed it in a handful of other things, but I never knew there was an actual thing behind it.
Absolutely fascinating, and it's applications in materials are amazing. Whatever-direction bandpass filters? Crazy cool.
Depending on where you live, most trees are planted by humans in very regular intervals.
Old growth forest that did not get planted by humans have a much more chaotic distribution that's influences by fires, fallen trees, local fauna, and competition for sunshine with other trees.
Interesting. I have never quite thought about the example of trees but it's possible something like that is going on. If someone would know, it would be Geoffrey West from the Santa Fe Institute and indeed he delivers: http://www.pnas.org/content/106/17/7040.full
According to their theory: "(...) the average distance between the trunks of individuals (trees) of the same size scales linearly with radius (of the tree)"
I remember seeing a documentary were some scientist's work on forest/tree distribution was shown.
In the forest they measured, the fractal shape of the tree actually extended to the forest itself, as if the forest itself is one big "tree" with actual trees as its branches.
(Though, trees are 3D fractals, forest is a 2D plane, how does that work?..)
I'd imagine most trees would grow in hyperuniform distributions, since light is blocked by large trees, but seeds tend to fall very close.
Some trees also secrete chemicals that block their offspring from growing over their roots, which can combine with light availability to further the minimum distance between large trees.
Having regularly spaced sampling causes aliasing, where frequencies above the nyquist limit will look like lower frequences. Irregular spacing can, under some assumptions about the signal, avoid this. This an be used for super resolution.
Makes a lot of sense that uniformity with constraints is exactly what nature likes, wonder if hyperpossoinity is exploited by nature or more likely can be exploited by human designed systems.
So this is a better name for what they were calling "universality", right?
... Stuff like this makes me want to throw everything away and study math fulltime. That's still an option if I ever get FU money. Be sure to click through to the related article about the (spoiler) meteorite fragment containing a quasicrystal.
This is just an occurrence of the principle of least action. Systems exhibiting "hyperuniformity" just arrange themselves in order to minimize their potential. This is pretty standard stuff in engineering, and is the basis for finite element simulations of structural mechanics and fluid dynamics problems.
That is not strictly true. Most systems "minimizing their potential" exhibit a crystalline, ordered arrangement. Hyperuniform patterns are definitely a result of an optimization, but in this case it is a more complicated one than a 'potential energy'.
>Most systems "minimizing their potential" exhibit a crystalline, ordered arrangement.
crystalline structures have lower entropy compensated by increase in the entropy of the environment due to heat being transferred out of crystalline structure during its formation.
It is kind of intuitively obvious that hyperuniform(random) forest have higher entropy than crystalline style ordered forest would have. I don't see connection to environment (like heat transfer in crystal case) that would allow to compensate for decrease of entropy in an ordered forest.
That is a good point. But without getting too technical (although I'd love too if wanted), there are 2 caveats with your thought:
1. Order does not need heat transfer. Flying birds form a V-shaped pattern (to minimize drag, whatever), fish "order" into a packed school instead of being random, a honeycomb is hexagonal. Those are (near) optional solutions for constraints. There is an analogy with crystal formation but the math is not totally clear.
2. Crystals can have higher entropy than disordered states. Actually, a (crystalline) dense packing of Brownian spheres have higher entropy than a random close packing of spheres.
Trees are a kind of literal poisson disk. Because trees capture light and nutrients, there's a minimum viable spacing between them which enforces some separation. But seed distribution either clusters around each tree, or looks for gaps, depending on the seeding strategy.
So I'm not surprised you get a hyperuniform distribution. It's not truly random, because there's a pull towards maximum packing density in one direction, balanced by a push towards a spatial expansion distribution around each tree in the other.
Intuitively, I'd suspect this pull/push balance explains most hyperuniform distributions.
No, gradients can exist in the steady state system depending on the boundary conditions. Additional irregularities can be accounted for by what would ordinarily be considered "discretization error," since the problems considered in the article are discrete structures rather than continuous PDE's.
And my attempt at using Poisson-disc sampling to generate stippling patterns in real time in a GPU shader: http://gregschlom.com/devlog/2015/01/31/stippling-effect-scr...
I wish my blog post had more details on the technique, but basically I am pre-computing Poisson-disc distributions at several (255) density levels in such a way that the samples are adaptive (ie: all samples from levels 1-n are also samples at the level n+1.
I'm then storing that information in a texture, and reading from it in a shader to know whether or not to draw a stipple.
The tricky part is to figure out how to do that on arbitrary 3D surfaces.