Log - Jan 17th 2021

Set up - Markdown - KaTeX - seanneilan.com - python static html generator.

Can now write equations in KaTeX.

f(x)=f^(ξ)e2πiξxdξ f(x) = \int_{-\infty}^\infty \hat f(\xi)\,e^{2 \pi i \xi x} \,d\xi

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.

Log - Jan 18th, 2021

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.

Later today

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.

Log - Jan 19th, 2021

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.

Next Thought

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.

Log - Jan 20th 2021

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.

Darker Lines

Now the lines are darker. Let's make the canvas bigger.

Bigger Canvas

Wow, what shit. What literal shit. Let's try making the distance between lines larger.

More Distance Between Lines

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.

Next steps

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.

Log - Jan 21st 2021

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.

Here we go!

I'll take care of colors tomorrow.

Log - Jan 22nd 2021

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.

Log - Jan 23rd, 2021

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.

Log - Jan 24th, 2021

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

That worked!

Log - Jan 25th, 2021

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.

Log - Jan 26th, 2021

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 :)

Log - January 27th, 2021

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.

Log - January 28th, 2021

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.

Log - January 29th, 2021

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.

Log - January 30th, 2021

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.

Log - January 31st, 2021

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)

Log - February 1st, 2021

Store the points for a line creature in a nx2 matrix.

[xyxyxy] \begin{bmatrix} x & y\\ x & y\\ x & y \end{bmatrix}

(Not much done today.)

Log - February 2nd, 2021

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)

Log - February 3rd, 2021

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]

Log - February 4th, 2020

Affine Transformation

Shear Matrix


[xy]=[1001][xy] \begin{bmatrix} x'\\ y' \end{bmatrix} = \begin{bmatrix} 1 & 0'\\ 0 & 1 \end{bmatrix} * \begin{bmatrix} x\\ y \end{bmatrix}

But when I do this in numpy I get

[x00y] \begin{bmatrix} x & 0\\ 0 & y \end{bmatrix}


Google Ideas

Log - February 5th, 2020

Use np.dot for shearing not *

Log - February 6th, 2020

Scale the lines vertically but not horizontally.

Use a scaling matrix. Multiply a point by a 2x2 identity matrix with the ones swapped out.

Log - February 7th, 2020

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

Log - February 8th, 2020

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.

Later today

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.

Log - February 9th, 2021

Scraping instagram was a terrible idea. There are plenty of images on google we can use.

Log - February 10th, 2021

What probability does a light turn yellow.

Log - February 11th, 2021

Can save images with scikit.

Log - February 12th, 2020

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.

Log - February 13th, 2020

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.

Log - February 14th, 2021

Removal requests and redis cluster.

Log - February 15th, 2021

NES markdown is a lot of work :(

Did improve bullet points and checkboxes.

Should try callables in Python.

Log - February 16th, 2021

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.

Log - February 17th, 2021

I really need python code to execute in markdown. Image processing is inherently pipeline based.

Log - February 18th, 2021

pweave is the way to go for doing image processing on mobile.

Set up pweave pipeline in publish.py

Log - February 19th, 2021


Log - February 20th, 2021

Still working on pweave.

Set up new pipeline outside publish.py

Log - February 21st, 2021

Scikit image turned image into gray. Significant progress.

Log - February 22st, 2021

Nothing done. Rested

Log - February 23st, 2021

Unsure of how to segment image. Try the scikit image coin segmenter.

Log - February 25st, 2021

The log is becoming a burden.

Let's switch to individual blog posts.