https://github.com/aturley/follow-the-plot
plotter project for october 2018
https://github.com/aturley/follow-the-plot
Last synced: 7 months ago
JSON representation
plotter project for october 2018
- Host: GitHub
- URL: https://github.com/aturley/follow-the-plot
- Owner: aturley
- Created: 2018-10-01T22:03:28.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-01-21T20:56:58.000Z (over 6 years ago)
- Last Synced: 2025-01-28T10:51:34.097Z (9 months ago)
- Language: Pony
- Size: 7.98 MB
- Stars: 10
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Follow the Plot
This is an attempt at a month-long project in October 2018 where I
will generate svg files to plot/cut on
my [Cricut](https://home.cricut.com/) cutting machine. My plan is to
develop some generative tools and processes to do it.## Projects
### [1 (2018-10-01)](1)
Write a Pony program that draws a big circle and then some smaller
circles that follow a sine curve. Since Pony doesn't have an SVG
library I'm hand-rolling my own SVG. Maybe I'll end up with a library
at the end of this.
### [2 (2018-10-02)](2)
I decided to try to write a little drawing language. Inspired by
Postscript I went ahead and did something stack-based. It is ugly, but
it has a conditional branch so ... you can probably do some terrible
amazing things with it. Today's piece is a straight line with some zig
zag lines.
### [2.1 (2018-10-02)](2.1)
I took the drawing language and drew some mountains with the sun
overhead and a like in front of them.
### [3 (2018-10-05)](3)
I added recursive functions to the drawing language and wrote a
program that draws a grid of shapes with different numbers of sides.
### [4 (2018-10-09)](4)
I changed the language up a bit and based the drawing on SVG paths,
mostly focusing on arcs.
### [5 (2018-10-10)](5)
Changed the language name to PostSpite. Added lines and relative
movement. Drew some squares.
### [6 (2018-10-11)](6)
Created some circle patterns, played with starbursts and densities.

### [6.1 (2018-10-11)](6.1)
Added curves and some grid fun.

### [7 (2018-10-14)](7)
I added records to the the drawing language. They're basically lists,
and they're recursive, so now I'm not stuck with single values on the
stack and in dictionaries. I also added the ability to run multiple
files from the command line, so now i can basically build libraries
and then import them.Since I have records and libraries I went ahead and wrote a "range"
function that returns a record with a given number of elements, and a
"map" function that applies a function to all of the elements of a
record. Since functions can be referenced without calling them I now
have a reasonable start to a functional programming language.With all that excitement I just drew some simple curved lines that
intersect to form a grid.
### [8 (2018-10-15)](8)
This takes advantage of records to draw a series of cubic curves with
the same endpoints but different control points. I added a few bits
and pieces to the language like support for reflected cubic curves.
### [9 (2018-10-31)](9)
Added support for comments, drew some circles.

### [10 (2018-10-31)](10)
This one uses Pony instead of PostSpite to do the generation. I
thought I'd play around and see how it felt to work with Pony.
### [11 (2018-11-02)](11)
More Pony work. I experimented with drawing some circles and making
some scribles that vary in intensity depending on the coordinates of
the piece of the line. I'd like to do more experiments where I vary
the texture of the image.
### [12 (2018-11-02)](12)
This image uses a function that creates rectangles full of scribbles
of varying densities to represent a sinusoidal field.
### [13 (2018-11-05)](13)
I took a selfie and then used the scribble code from the last project
to plot it in black-and-white. There's an absolutely awful BMP reader
in here that does some of the heavy lifting.
### [14 (2018-11-06)](14)
I played around with some CMY (no K) drawing. I generated some random
paths through a grid and then drew different colored lines on each
path. The lines are offset a little bit to try to get some blending at
a distance without actually blending. The line separation turned out
to be less that required for plotting, so some of the lines are on top
of each other. The path generation was also a little disappointing. I
tried both paths that can cross themselves and paths that cannot cross
themselves, and neither one was completely satisfactory. I ended up
going with the non-crossing paths, but the result was that the final
paths were fairly short and each color path only overlapped slightly,
so there really wasn't much blending.
### [15 (2018-11-08)](15)
More CMY (no K) drawing. I wrote some code to draw a path and make
curves when the direction changed. The idea was to generate three
random paths that overlapped and make each of paths a different
color. The drawing works reasonably well, but the path generation
never made me really happ because the paths didn't overlap as much as
I wanted. I eventually settled on an image that looked OK, but if I
want to pursue this then the next challenge is finding a useful way to
generate the paths.
### [16 (2018-11-09)](16)
In this project I played around a bit with distorting grids. My
geometry and trig skills have atrophied quite a bit since college so I
had some big ambitions and ended up scaling them back a bit, but I'm
reasonably happy with this. This design ended up using only the
distorded parts to draw the green, and then used a second undistorted
grid, but skipping some columns, for the red. The plotting isn't that
efficient because I draw every connection between neighbors, in both
directions, so each line is actually drawn twice. I know how to fix
that, but at some point I just said "screw it".
### [17 (2018-11-15)](17)
I wrote some code to optimize the paths from project 15. Unfortunately
I overlooked an edge case and so the optimization doesn't always do
the right thing. Basically, it assumed that it could join two commands
together if the first one ended at a point and then there was a later
`move` command to that point; it would get rid of the move and put the
other two commands together. This assumption falls apart if there are
overlapping command segments that move in different directions. The
result in this case is the diagonal lines near the lower middle of
this plot.But hey, we learn as much from our mistakes as from our successes.

### [18 (2018-11-16)](18)
I went ahead and did the standard "grid distortion with Perlin noise"
thing, mostly because I wanted to learn about Perlin noise. I did my
own Perlin implementation in Pony, so I guess I have that now. This is
the pumpkin spice latte of generative art.
### [19 (2018-11-16)](19)
I experimented with using a pen adapter and some bush pens. I plotted
this on a 3x5 card, I should probably try some larger plots to really
take advantage of the distortion the brushes provide.
### [20 (2018-11-18)](20)
I printed out the negative space in a Perlin-distorted grid. It is
actually really boring so I'm preserving this here so that I remember
just how boring it is.](21)
This is another image, this time of my son Arthur. I made lines out
from points on either side of the image and the middle, drawing only
on pixels where the intensity value was below a certain threshold. I
had to play around with the placement of the initial points and the
thresholds to get this. It could probably be improved a bit, but it is
hard to get detail on a white kid with blond hair.
### [22 (2018-11-23)](22)
I got some ultra-fine pens (down to 0.05mm) so I played around with
one of those and I wrote a function to draw shapes within a circle. I
need to experiment with the pens more.
### [23 (2018-11-24)](23)
I drew some arcs just to get a better idea of what the brush pens look
like on larger objects and how closely you can draw brush lines.
### [24 (2018-11-26)](24)
This is an experiment with some different pens, including a Cricut
metallic pen and one with a 0.05mm tip. In the lower part I was trying
to play around with a kind of fade effect. The image is inspired very
losely by an Ansel Adams photograph.
### [26 (2018-11-30)](26)
Polo Cat! To generate this image I took a picture that I had of Polo
and then treated each pixel as an intersection of lines on a
grid. Then I took the boxes formed by the intersections and distorted
them by moving the corner of a box closer to the middle of the box as
the intensity of the pixel in that corner increased. So for a black
pixel the corners of the boxes at that intersection would all be right
on the intersection, while for a white pixel the corners would be
pushed to the middle of the box.I was trying to see if I could make the viewer see the dense
intersections as dark spots. This kind of worked, but for completely
black pixels the middle of the boxes around them are the things that
stand out, so they look light instead of dark. That said, I still
think the effect has promise.
### [27 (2019-01-20)](27)
I drew some squares. They're kind of relaxing to look at.
