- français
- English
week-14: Grid
Introduction
The goal is to explore the grid generate by the pin.
First, we will clarify the concept of grid and his representation.
Then, we will start by analyze the grid given by a regular circle pin disposition and discuss about the intensity issue and the Moiré effect issue. We will find a way to resolve the Moiré effect and explore how we can reduce the intensity effect. This will lead us to explore other grid shape: the ellipse grid shape, the square grid shape, grid with manually added pin and the tribal grid shape.
Finally, I want to end with a small conclusion and how I wish to continue this project
Grid concept
We assume that the string can only go from one pin to the other by a straight line. Thus, the different path from the string are constrain over the space. We can view all the possible move, from one pin to the other, as a grid.
Grid representation
To represent the grid, we choose to draw each possible moves, from one pin, as a line with a small gray intensity (RGB(2,2,2)) and to add the gray intensity, if two lines or more are overlapping.
Remark, that we have drawn each move two times.
Circle Grid
image1: circle grid of 240 pins
This grid representation is generate by pin regularly placed onto a circle.
We see two main issues:
* There is a Moiré effect.
This come from the fact that the pin are positioned really regularly and the grid becomes, in fact, a mandala, crossing serval time the same spot.
* Close from the border, there is a more intense and fine grain grid.
This come from the fact, that close from a pin, the string a more close from each other so they have more probability to cross the same pixel.
Moiré Effect Suppression
They Moiré effect can easily be remove from adding dome randomness to pin position. To do this, we implement a method that take a random pin disposition and move slightly each pins. (see commit: dd6355ec1e9d20e3d30f56b9011d19c21f877015 on github). This technique has the advantage to work on all the gird shape that would see later.
Apply this on the previous grid we obtain:
image2: circle grid of 240 pins with slight randomness
Let's appreciate the removal of the Moiré effect on a computed image
Intensity Issue
The intensity issue seems more difficult to resolve. It seems hard to have a more uniform grid. The first ideas was to add pins inside the circle. We try out three different techniques:
• Adding simply a pin in center
• Adding manually some pins (These can be done from a new interface, where the user has just to click where he wish to add pins, )
• Construct a grid that have a “tribal” shape
We obtain the following grids and images using these three techniques:
None of these seems to have a uniform grid. In fact, it’s seems impossible to have a completely uniform grid because each time we add a pin, locally at the position of the pin all the string will cross and these region becomes dark than the others. Furthermore, there is a side effect, we see that pin inside the grid are quite visible and ugly.
One other possibility is to take a circle much bigger as the image. But, for the moment, we forgot a little about the intensity and we explore other grid shape for artistic curiosity.
Square and Ellipse Grid Shape
All the following image are using 240 pins.
To achieve these grids I implement a new method that can transform any OfPolyLine instance into a Wheel instance (the wheel instance represent a grid in my code).
Conclusion
We find an efficient way to remove the Moiré effect of all images. We can assume that if we do these in reality the Moiré effect will be remove naturally by the noise of the physical process (precision on the pin, gravity ...). But, this is just a hypothesis and we need to prove them.
The grid intensity is still no equilibrate, but it seems impossible to have a perfectly uniform grid with string going always from one pin to every others. However, this exploration lead use to construct visually interesting grid, as the square.
Further work
In fact, there is for me two main ways to go further.
The first one is to continue building this software has a model for a physical engine. Here the goal would be to try to find out the best model and parameter and maybe to build an engine :)
The second one is to view the software as an artistic tools and to develop esthetical effect that I can achieve with these method.