Categories
halftoning

Scaly Rendering

I’ve been interested lately in approximating images using lines of constant width. To that end, I’ve made these: These patterns are grown iteratively. A shape begins growing from the unclaimed point closest to the center of the image. By sampling the brightness of the image, the size of the new shape is chosen such that […]

Categories
halftoning

Multiple Color Channels

Let’s apply the half-toning techniques to the separate color channels of an image, like the header image above. Or the one below, where the stripes are no longer aligned with the gradients. This can be done with any of the halftoning methods, but the stripes have character.

Categories
halftoning

Stippling: So Many Dots

How can we draw pictures with dots? This is called stippling, which involves putting a lot of dots across an image to approximate tones. On a white background, more (or larger) black dots result in a locally darker image. These two approaches are known as AM and FM stippling. AM – amplitude modulation – means […]

Categories
halftoning

Seismographs

On the theme of using a single path to shade an image, one idea is to use a wiggling line. A shorter wavelength will result in a darker area, and vice versa. So I threw a little math at the problem, and here are the results of using square, triangle waves, and sine waves: A […]

Categories
halftoning

Stripes: Improved

Those other stripes are nice sometimes, but what about varying the orientation and wavelength of the stripes? As before, the output can be formed by varying the wavelength or the width of the stripes. Here are comparisons of the two approaches on the Lena: Now how about the crossed patterns? Much improved, compared to the […]

Categories
halftoning

Stripes: Distance from Edges

A quick one: the phase field can be computed as the scaled distance from edges in the image. Then apply the stripes math, and: This has reasonably interesting circular artifacts, but it is limited in how it responds to the image.

Categories
halftoning

Stripes: Laplacians

What if we want stripes to respond to an image? Well, we can make a version of the image that has gradients that are roughly parallel to those of the original image. Then we can use those as the basis of some stripes. Say we want a phase field that has gradients that are parallel […]

Categories
halftoning

Branching Lines

I was inspired by Rapidly Exploring Random Trees, and wanted to make a halftoning method based on that. I wanted more lines in dark areas and fewer in bright areas. With some tweaks on the concept, I’ve made something that works reasonably well. It probabilistically chooses new line segment endpoints that are relatively close to […]

Categories
fluids

My PhD: Vortex Generation and Modeling

My PhD focused on the “Experimental Generation and Modeling of Vortical Gusts and Their Interactions with an Airfoil.” You can see my thesis here. I was interested in seeing the effect of a vortex interacting with a parallel wing. Most research on the topic has been based on helicopters or propellers, but those have periodically […]

Categories
etcetera

Generative Writing

I wanted to generate random hand-written letters and have them look like writing. I wanted each alphabet to have a unique style: aspect ratio of characters, sharpness, and number of strokes. In the following image, each row is a different generated alphabet. Seems to work alright. They are visually distinct, though sometimes too complicated. Now […]