50000 Rectangles #16


50000 rectangles.

(Continued from 50000 Rectangles #15.) Here is a List of Probability Distributions. The fifth item in the first bullet list is the Degenerate Distribution. There is one outcome and it happens 100% of the time. It is a legitimate, if uninteresting, probability distribution. It is the exact opposite of our intuitive definition of randomness.

Earlier I said that I was seeking something random, but not random. Something between order and chaos. Perhaps the answer lies in these probability distributions. The uniform distribution lines up with the intuitive idea of complete randomness or total chaos, while the degenerative distribution matches the idea of no randomness, absolute order. The normal distribution is somewhere in the middle.

50000 Rectangles #15


60000 rectangles.

(Continued from 50000 Rectangles #14.) If you encounter a uniform distribution in the real life, such as a card game, you think randomness. But if you encounter a normal distribution, such as the height of your friends, it just seems normal, not really random.

The graph of the uniform distribution is just a horizontal flat line. The earlier link has the graph for the normal distribution. You have seen it plenty of times. You can move the peak around and make it steeper or flatter by varying the mean and standard deviation. So much more interesting than a flat uniform line.

50000 Rectangles #14


60000 rectangles.

Later on I will describe how Iterated Function Systems and Contraction Mappings generate bounded fixed sets that are used for most of the images in the series. The previous images are zooms that show only parts of those sets. Today the view is zoomed out and full bounded set is seen.

Ongoing Story
Yesterday, 50000 Rectangles #13, I mentioned the random/not random border. Order and chaos. Even though the idea seems obvious, it got me thinking. Indulge me as I go down the rabbit hole and off on a tangent at the same time.

Randomness is generally equated with uniform probability distribution. Every event is equally likely. Each side of a die has 1/6 probability of being rolled. The odds of drawing the ace of spades is 1 out of 52, the same as the odds for the 3 of hearts. Here is a link on Probability Distribution, but I do not think you need to go there.

There are other types of randomness. Statistics is all about dealing with randomness. While the uniform distribution plays a role, its popularity is far behind the Normal Distribution, the bell shaped curve.

50000 Rectangles #13


50000 rectangles.

After the long description about faux edges and shadows, the next question may be “how do I decide where to put the rectangles”? One sees randomness, but not total randomness in these pictures. There is a hidden pattern, sometimes very well hidden, and sometimes not hidden at all.

I mentioned this many times over the years, and here it is again: I like to visit the boundary between random and not random. It is a wide boundary, and depending on my mood sometimes I land nearer the order side or the chaos side.

50000 Rectangles #12


40000 rectangles.

There is much more potential here. The weight which is used as a parameter to combine colors, is just a number. Also, other pixels can be used for more than computing a normal and ray reflections. A pixel is just a set of numbers x, y coordinates, weight, and rgb colors. These numbers can be combine in infinite ways to distort or enhance an image.

That description is way too general. Applying random calculations to these numbers will just results in random noise. The potential is realized by breaking the rules, but only by a little bit at a time.

I am not going down that path now. This is going on my every increasing list of this to revisit someday.

50000 Rectangles #11


50000 rectangles.

(Continued from 50000 Rectangles #10.) Things got better with these changes. I could scale up the image without noticeable artifacts. But finding the right distance and other parameter setting required way too much fiddling. And the result simply was not that exciting.

Then came inspiration (or perhaps laziness). I decided that I was not trying to accurately simulate lighting on a surface. Rather I was just coming up with a new way to alter an image. I should think of this as just another metaphorical brush in the tool box.

I started applying unrealistic parameter setting. I used larger distances for the triangle coordinates. I modified the dot-product calculation for ray reflection. I added a second “eye” location.

Now the effect was distorted and exaggerated. Interesting, but not realistic.

That is the right answer. This is abstract art. It is not meant to depict any reality. It may vaguely trigger some association, but that association should be loose and fluid. My distorted, imperfect, 3D lighting is like putting the eye in the wrong place on a face.

50000 Rectangles #10


100000 rectangles.

(Continued from 50000 Rectangles #9.) After all of this, the results were underwhelming. Perhaps there was a bug, but I believe the results were accurate. Just not very exciting.

One problem I identified with my method came from using adjacent pixels to compute the normal. Shadows were one pixel wide. The same scene looked different at different resolution. Higher resolution meant thinner shadows. Also at different resolutions, the adjacent pixels are different, so the surface normal calculation gives different results.

To solve this, I choose pixels a certain (resolution-independent) distance from the target pixel to compute the normal. I also used a weighted average of pixels near that target distance rather than a single pixel.

50000 Rectangles #9


100000 rectangles.

It was my intention to create an accurate 3d lighting representation of the surface describe in 50000 Rectangles #8.

I defined a point in space for the eye, and points for one or more light sources. I assigned brightness to the light source, reflectivity to the surface. I added parameters for degrees of diffusion and spot light cone size, and several other things.

For a given pixel I use the pixel to the left and the pixel above to create a triangle in 3D space. Then the surface normal to the triangle is calculated, and from that the angles to the eye and the light.

50000 Rectangles #8


50000 rectangles

If you have not been following along, I described rectangle weight in 50000 Rectangles #2 and pixel weight in 50000 Rectangles #7.

Now we can view the image as a surface in 3D space. The pixel coordinate is x,y, and we use the pixel weight for z, height. We can shine light on the surface and create shadows and reflections.

One could do that. But that is not exactly what I am doing. To be continued…

50000 Rectangles #7


50000 rectangles

I described a rectangle’s weight back in 50000 Rectangles #2. This weight could also be considered opacity, or its inverse, transparency.

I keep track of the total weight on each pixel. Each time a rectangle covers a pixel the rectangle weight is added to the pixel weight.

All rectangles, and all pixels covered by each rectangle are assigned the same weight. So the pixel weight is essentially the number of rectangles that intersect the pixel.

Weight varies from image to image, but on a single image it is constant. At least so far. I may experiment with rectangles of different weight, or different pixel weights within a rectangle.