Set up - Markdown - KaTeX - seanneilan.com - python static html generator.
Can now write equations in KaTeX.
We have been studying calculus to understand Navier-Stokes equations to simulate water colors.
I seem to understand what derivatives are but hit a wall with derivative notation.
Looking into defining derivatives exactly.
Partial derivatives are easy to understand.
Need to figure out what an ODE is to solve navier-stokes.
Unsure of what direction I want to go today.
I have several directions I can take my research in however - Navier Stokes - Neural Networks - General drawing - The stained glass software
I feel like I haven't produced anything lately. I have learned a lot about Calculus though.
I miss my lines and shapes.
I'd like to draw some lines and shapes today.
I want to draw them using spreadsheets.
I have considered codifying what I'm learning in my composition textbook but I do not want my art to be dependant on me finishing a textbook.
Should I write a program that reads coordinates from a spreadsheet and draws something? Should I use my python Canvas class to draw something?
Yeah, let's draw something using my program. We'll write small programs in lisp that take x, y coordinates and draw something.
We've cleaned up the Python Canvas class. Lets make something in it.
Do I make the Grid/Square classes into lisp objects? Yes. Absolutely.
The canvas class should be very basic.
I'm setting up hy in vim now.
I was writing a program in hy to draw grids. However, hy array access is verbose. In Python, I can do
a[0] # a is a list
but in Hy, it's
(get a 0)
That's like 8 more characters than I care to write.
I really want to write generative art in lisp. In clojure I could do
(a 0)
I want to stick with Python. If I stick with Hy, I may run into more annoying issues in the future.
I cant do this either
(print a[0])
Results in
[1 2 3] [0]
Hy wont make collections callable either :( https://github.com/hylang/hy/issues/963
I feel like continuing with Hy will lead to more issues down the line. I'm not sure how important lisp is to me anyway. If there are usw cases in the future for Hy, let's inject it at key points. If using Lisp is so important that we need it for everything, consider switching to Clojure.
TLDR: Syntactic sugar in Hy is sub-par. It's a bare bones lisp.
How do we turn this failure into wallpaper? I want something that at least writes text to an image. Or draws a grid.
For now, I will write a function that draws a grid.
Before I started writing the function to draw a grid, I realized the nature of using code as an artistic medium. It's very difficult to work with. You have to know what you want to make art with code. If you start coding immediately, it generally turns into a pile of shit and it quickly loses the fun experience.
My mind didn't want to write the grid drawing function right away. I paused for a moment. I don't know if I should be mad at myself for this but I will write the grid drawer now.
I have drawn a grid. It is a function that takes three arguments: the canvas, c1 and c2. C1 / c2 are the coordinates in [x, y] notation.
It is a shitty grid. Shitty Grid
It's hard to see. I'll make the lines darker.
Now the lines are darker. Let's make the canvas bigger.
Wow, what shit. What literal shit. Let's try making the distance between lines larger.
So now what. What's next? Draw a circle? A square? Figure out why on a canvas of 1080x1080 drawing lines every 10 pixels only shows eleven horizontal and vertical lines?
I'm on an airplane coming back from Hawaii. I don't have the documentation to write circles yet. Drawing a rectangle is tricky too. I don't know what the xy parameter is in
python
def rectangle(xy, fill=None, outline=None, width=1)
But I really really really like this new process of thinking about art before I create it.
I want to import and manipulate images of flowers next. Maybe I can adjust the line width of the grid and figure out the steps.
That actually worked! Proper Grid
There was a bug in the grid function. It was scaling the lines twice.
Not sure what to work on next due to lack of internet but this is cool.
Yesterday, I explored drawing rectangles later but failed. I didn't have documentation for how to make rectangles while on the plane.
Today, Let’s get rectangles drawing in black. We shall draw one rectangle at a time.
Then draw them in colors.
Same concept for the Grid as yesterday. Function. Takes two coordinates and makes a drawing.
I'll take care of colors tomorrow.
I've created a repo for my art on github. Now I can sync my code across computers.
Today, I am resting. Probably tomorrow too.
Not sure what to work on today. But I'd really like to start using text in my art.
Let's get helvetica printing images.
Steps 1) Pull up the pillow documentation. 2) Figure out what an ImageFont object is. 3) Write a function that loads Helvetica Bold True Type. 4) Get text to display.
I got it. Had to use this tutorial
However it's not using Helvetica. Next step is to get Helvetica to display correctly.
Lets try specifying a Helvetica font file and seeing if it displays.
Yes. That worked!
Lets make the helvetica text the correct size and say 555.
Helvetica loads and displays 555 :)
Next, let's make something that resizes the text automatically to fit the grid.
algorithm: 1) Render text with size 5 2) See how tall it is 3) If text height is less than 50 px, increase size and go to step 2 4) If text height >= 50 px, return height
So I downloaded Robinhood.
How do I go about discovering new patterns in Robinhood with Python.
I would like to draw the patterns on the grid and turn them into wallpaper.
Let's see if we can get daily historical data from Robinhood.
With that data, we will plot a square on a grid when a rule is triggered.
Let's see if we can create something artistic using historical stock data.
Can I make my decision of whether to buy nio into art?
Stock data can be distracting. Best to keep its input minimal.
Stock data can be distracting. Best to keep its input minimal.
Stock market insights will be a glorious contribution to the wallpaper.
It is a very powerful element. It is so powerful of an artistic element, it takes over my own thoughts. I want to add these to the wallpaper but I need to figure out how to control my focus with stock market insights.
Anyway, what insights do I want to add to my wallpaper next? I want the 555 text to be perfectly aligned with the grid at size 1. Then size 2 and size 3. See this for an example.
Then, I want a more romantic grid :)
This trading thing took over my mind. Stocks are impressively interesting. I'll have to use this in my art.
That will mean I have to learn how to trade. Which is fine. But I need to be able to manage my emotions in these trades.
My sole purpose for learning how to trade is to have more wallpaper. I'll just have to learn not to get excited by impressive trades like when I bought $GME at 81.
I just have to understand that using more interesting elements like stock market data is more difficult. I have to appreciate them unemotionally otherwise I won't be as productive.
Yesterday, figured out how to focus while there are trades in the background. Basically, each time we look at the market, it is new information that is incredibly exciting. We have to find some balance here.
Trading ultimately drains me. It is not drawing. It is only studying and not enough production.
I have several things I want to pursue. 1) Train an OpenGPT2 model on this log and use the output to draw colors. 2) Improve my text drawing capabilities.
Let's go with the latter. The ability to draw more text will help make creating art easier.
That worked! The text aligns.
I want my blog to read better. I see how people in the economist and Morning Brew write and I love the way they use words.
Now that text aligns, should I 1) Edit the blog 2) Add kerning features 3) Setup some kind of line drawing software and make a more romantic grid.
Let's create romantic grids: 1) Change grid color to light gray. 2) Divide the grid into units of 10 with darker lines separating.
That worked!
Now I want some kind of line creature.
Let's think of ways to draw lines.
I also need an easier way to attach images to this blog.
Next: 1) Add font sizes. 2) Clean up code / log 3) Draw line creature.
Line Creature: (Create a program that draws) * Three side by side equal height vertical lines * Cascading vertical heights (incomplete)
Store the points for a line creature in a nx2 matrix.
(Not much done today.)
Build a matrix to store the line creature points. Then a function to draw whatever is in a matrix as is.
Three lines. For x in [-1, 0, 1]
I'd like to use one canvas. Not two. I have a separate editor where I write things out and another where I code. I want to code and write in the same editor. (As much as possible)
Continue line creature.
for x in [-1, 0, 1]: # Set the x coordinate to x in both cases # set the y coordinate to 1 and -1 # skew the matrix somehow
meow[x] = [4, 5]
Supposedly
But when I do this in numpy I get
:(
Use np.dot for shearing not *
Scale the lines vertically but not horizontally.
Use a scaling matrix. Multiply a point by a 2x2 identity matrix with the ones swapped out.
Routes [ ] Research neural network painting [x] Rebuild desktop [ ] Add circle drawing [ ] Ray tracing and shadows.
Terms: * UEFI * Secure Boot
Wow is it hard to install Linux on Asus M97
Installing linux on Asus Z97 motherboards is tough. What a drag.
I'm going to research neural network painting again.
I also want to start paying other people to make art.
How do I paint the sky with fourier transforms and kernels?
Also navier-stokes equations are tough to figure out :(
This limitation of never placing elements manually is also hard to work around. It forces me to only use algorithms for placement of elements.
Placement Algorithms
I really enjoy the idea of stealing images and using image segmentation to find excellent composition ideas. I'll do that.
Set up urllib to download images from the internet and OpenCV, Pillow or whatever is current for manipulating images.
Let's download an image of the sky from google.
Scraping instagram was a terrible idea. There are plenty of images on google we can use.
What probability does a light turn yellow.
Can save images with scikit.
Another navier stokes shot tonight.
Advection Pressure Diffusion External forces
Definition vs Finite Difference Form
Let's build an understanding of Navier Stokes piece by piece.
Edge detection on a picture with clear edges.
Locate distinct points.
im overwhelmed by the possibilities if scikit image :(
Detect edges in above image.
Render image as text?
Run with main.py?
I need something like jupyter but command line based.
Use markdown with a python engine.
Removal requests and redis cluster.
NES markdown is a lot of work :(
Did improve bullet points and checkboxes.
Should try callables in Python.
Not much done yesterday art wise.
I decided to remember why I write software today.
For example, I want a square in the upper right hand corner. A program can read this sentence about a square and put the square in the upper right hand corner.
I really need python code to execute in markdown. Image processing is inherently pipeline based.
pweave is the way to go for doing image processing on mobile.
Set up pweave pipeline in publish.py
Nothing
Still working on pweave.
Set up new pipeline outside publish.py
Scikit image turned image into gray. Significant progress.
Nothing done. Rested
Unsure of how to segment image. Try the scikit image coin segmenter.
The log is becoming a burden.
Let's switch to individual blog posts.