Sign in

Casey Primozic / ameo

@ameo.dev
206 followers 221 following 85 posts

Programmer, primarily. Music makes life worth living; the internet is the greatest wonder of our age. cprimozic.net Previously found at: twitter.com/Ameobea10

PostsRepliesMedia
Casey Primozic / ameo @ameo.dev · 05/05/2026
Most crisp gorgeous double rainbow I've ever seen in my life outside my apartment window just now
Photograph of a very pronounced double rainbow taken out the window of an apartment building.  The horizon is flat with a few buildings in the foreground, but the rainbows themselves are fully unobstructed.
072
Casey Primozic / ameo @ameo.dev · 14/01/2026
Hell yeah, this is really cool
A screenshot of the Geotoy editor showing a smooth tendril-like form rendered on the left and the code generating it on the right.  The code includes calls to `trace_path` as well as `rail_sweep`, the latter of which is used to generate the actual meshA screenshot of the Geotoy editor showing a sword or blade-like object rendered on the left and the code to generate it on the right.  The code uses `trace_path` to generate the 2D cross-sections of the blade, uses a deformed rectangular prism to cut a divot out of the middle, and generates the shape of the blade itself using the `rail_sweep` function
000
Casey Primozic / ameo @ameo.dev · 13/01/2026
Panning out pretty well so far The new `trace_path` command doesn't add a _ton_ of new functionality by itself, but it's only half the puzzle. The next piece will build on it and really open things up
A screenshot of a Geotoy composition showing what looks like a curved piece of metal with a cylindrical hole drilled through it rendered with a gray brushed-metal texture.  The code used to generate it is displayed on the right and it contains a call to a function called `trace_path` which contains some 2D drawing commands like move, line, cubic_bezier, and arc.
100
Casey Primozic / ameo @ameo.dev · 07/01/2026
Still working on my Geotoy project on and off Building up a pretty decent collection of cool stuff with it 3d.ameo.design/geotoy/edit/71 3d.ameo.design/geotoy/edit/72 3d.ameo.design/geotoy/edit/76 3d.ameo.design/geotoy/edit/66
Colorful curlicues resembling twist-ties twisted into various sorts of spirals and textured with a bright geometric chevron patternA voxel construct resembling a hollow hourglass sitting on a concrete mat with a folding structure around itA concrete or stone walkway with shiny dark puple rock-like organic-looking spires surrounding itA series of gray tendrils or pipes following an organic looking flow pattern reminiscent of fluid dynamics or smoke
020
Casey Primozic / ameo @ameo.dev · 27/12/2025
Improved version
A diagram created with TikZ which shows the architecture for a denoising autoencoder model.  It shows the inputs at the top which are created by concatenating the presence flags and hybrid-normalized rating values, the encoder and bottleneck, and two decoder heads which predict presence and rating separately.  The diagram is annotated with fan-out param count for each layer and has nodes to indicate when Swish activation and softmax are applied.
010
Casey Primozic / ameo @ameo.dev · 26/12/2025
Working on some TikZ diagrams for a new blog post
A diagram representing the architecture of a neural network for a recommender model.  It shows an input consisting of concatenated presence flags and hybrid-normalized ratings, an encoder hidden layer, a bottleneck layer of size 512, and then two output decoder heads each of which have two hidden layers.  The decoder heads are labeled "Presence Decoder" and "Ratings Decoder".
110
Casey Primozic / ameo @ameo.dev · 26/10/2025
An alternate style This one took almost 8 minutes to generate though. CGAL has some pretty severe performance issues when running in Wasm. It relies on having strict control over FPU rounding mode flags, but those aren't controllable in Wasm, so expensive emulation is needed
A screenshot of a 3D model created and rendered with Geotoy.  It depicts a multi-layered folded shell enclosed in a spherical area, textured and shaded with shiny gold-colored streaks across its surface.  The base surface appears rather matte and rocky while the golden streaks are shiny and metallic.  It consists of many separate thin layers of material that warp and curl in roughly the same way as each other, yielding an organic look reminiscent of a smooth endoplasmic reticulum.
001
Casey Primozic / ameo @ameo.dev · 26/10/2025
My latest creation with Geotoy, built using the alpha wrap function from the CGAL library I've been getting a ton of value out of this; it's really useful for creating organic-looking structures You can see it in 3D here: 3d.ameo.design/geotoy/edit/62 (takes ~30 seconds to run)
A screenshot of a 3D model created and rendered with Geotoy.  It depicts a multi-layered folded shell enclosed in a spherical area, textured and shaded to look somewhat copper-colored.  The surface appears rather shiny and metallic with colors ranging from orange/brown to pink, peach, and crimson.  It consists of several separate thin layers of material that warp and curl in roughly the same way as each other, yielding an organic look reminiscent of a smooth endoplasmic reticulum.
112
Casey Primozic / ameo @ameo.dev · 16/09/2025
A wall from "Only God Forgives" 3d.ameo.design/geotoy/edit/55
A screenshot of a 3D model of a wall with detailed cutouts.  A stone wall panel with a repeating lattice of decorative cutouts.  The pattern consists of elongated oval shapes arranged horizontally, intersected at their centers by small circular openings.  These patterns repeat in a matrix across the surface, creating a perforated screen. Warm light glows from behind the wall, highlighting the depth of the carved openings and casting shadows through the pattern.  There is some Geoscript code visible on the bottom of the image which was part of that which generated the model in the scene.A screenshot from the movie "Only God Forgives" showing the dimly lit profile of a character standing in front of an intricate cutout in a wall.  There is an orange light illuminating from behind that shows off the lattice of the cutouts.  The pattern consists of elongated oval shapes arranged horizontally, intersected at their centers by small circular openings.
000
Casey Primozic / ameo @ameo.dev · 15/09/2025
A pedestrian bridge from the Ghost in the Shell live action movie I built in Geotoy 3d.ameo.design/geotoy/edit/54
A screenshot of a 3D model of a pedestrian bridge rendered with Geotoy.  It shows a bridge with a green fence along either side and several large windows.  There is a text editor with code at the bottom.A screenshot from the Ghost in the Shell live action movie showing a pedestrian bridge.  The bridge is made of metal and painted white with large windows cut into its side and a green railing.  There are large highrise apartment buildings in the background.
120
Casey Primozic / ameo @ameo.dev · 03/08/2025
After _much_ effort, I've gotten the boundary-first-flattening library compiling to WebAssembly (geometrycollective.github.io/boundary-fir...) So now I can auto-unwrap UVs for meshes that triplanar mapping works badly for in Geotoy
A screenshot of a mesh rendered in Geotoy.  It looks like a sphere with some holes drilled in it that has been split in half sideways.

The sphere is textured with a debug texture showing UV coordinates across different parts of its surface
001
Casey Primozic / ameo @ameo.dev · 25/07/2025
I'm putting real effort into making the docs for geoscript/geotoy as high-quality as possible I created these little inline examples that show the code and its output directly on the docs page 3d.ameo.design/geoscript/do...
A screenshot of the docs page for geoscript showing details about the `stitch_contours` function.  At the top of the docs for that function, there is an expanded example that shows some geoscript code on the left using the function and an image on the right representing the output of running that code.

Below the example, there are docs for the function including the function signature, argument names+types+default values, return type, and a description of each argument.
010
Casey Primozic / ameo @ameo.dev · 23/07/2025
It's always so hard to call something "finished" but I'm making a lot of cool stuff with this already tbh 3d.ameo.design/geotoy
A screenshot of the geotoy web app showing a scene that looks like a roof composed of interlocking shingles. the shingles are a curved shape with a shiny gray stone-like texture.

There is a code editor in the bottom left of the screen showing some syntax-highlighted code in a functional-looking programming language. It has variables like `shingle` and function calls like `fan_fill` and contains the code that defines the scene.

In the bottom right of the screen, there is some output showing basic stats about the scene and program like runtime in milliseconds, total vertices, and total face count.
121
Casey Primozic / ameo @ameo.dev · 29/06/2025
Sneak peak of a project I've been working on recently
Screenshot of a web app showing a 3D model of what looks something like a bird bath rendered along with a code editor with some code in a functional-looking programming language.  There's a "run" button along with some stats about how long the code took to run, how many faces/vertices are in the mesh, etc.
120
Casey Primozic / ameo @ameo.dev · 01/06/2025
I think it was around Covid era when I first started seeing Internet culture show up in graffiti I love it
A photograph of some graffiti featuring text written in black on a white background. The text says "bro had the texture pack on". There's various other scribbles and illegible text surrounding that writing.
020
Casey Primozic / ameo @ameo.dev · 28/04/2025
Been getting around to some work on my browser-based DAW project again, finally getting a proper visual EQ built out I'm finally accumulating a decent amount of building blocks for these modules in the codebase rather than having to build everything from scratch each time
021
Casey Primozic / ameo @ameo.dev · 10/02/2025
Getting close the part of the year where days get longer the fastest! This chart shows the daily percentage change in day length over the year for some different latitudes. For me, having days get longer faster really helps get that "spring is coming!" energy going
A plot showing the daily percentage change in day length by latitude.

The higher the latitude, the more dramatic the changes are, but they all peak around February.

Image source: http://wordpress.mrreid.org/2014/10/19/rate-of-change-of-day-length-with-latitude/
030
Casey Primozic / ameo @ameo.dev · 28/12/2024
The last one I think
A diagram created with TikZ to demonstrate a struct-of-arrays scheme applied to the data structures used to solve Advent of Code 2024 day 9 part 2. There are two rows showing labeled 'Stored Files' and 'Empty Space'. The stored files row has nested cells which contain a length and 4 inner data entries, some of which are empty. The empty spaces row is a simple one-dimensional array which contains a single digit in each cell.
000
Casey Primozic / ameo @ameo.dev · 28/12/2024
I'm using this as motivation to write alt texts for these diagrams
A diagram created with TikZ to illustrate a data structure for solving advent of code 2024 day 9 part 2.  It show two rows of nested nodes that represent slots of filled and free space on an imaginary filesystem.  The nodes are split in the middle with the left showing a set of contiguous files with different IDs along with their sizes, and the right side shows how much free space is available after that file indicated by the null set symbol.  The first row shows the original filesystem layout after parsing and the second shows the result after running the algorithm for the problem.
100
Casey Primozic / ameo @ameo.dev · 27/12/2024
Another one
A diagram showing the tree structure used to solve Advent of Code 2024 day 9 part 2.  It has two rows of boxes with arrows pointing to each other in a chain from left to right.  The boxes represent slots in the filesystem described by the problem and  contain text indicating the contents of each slot like '1 x 1' or '1 x <null set>'.  The bottom row has a special split node indicated by [...|...] which branches off in a tree to additional nodes which represent the strategy used by the algorithm to split a free space node into a filled node and a smaller free space node while retaining ordering.
100
Casey Primozic / ameo @ameo.dev · 27/12/2024
I'm finally working on a new blog post: a rundown of the very cool optimizations I used to compute Advent of Code 2024 day 9 part 2 as fast as possible I'm using TikZ to create the visualizations, which creates SVGs that have a nice academic vibe to them
A diagram demonstrating how the algorithm for day 9 part 2 of advent of code operates.  It shows rows of cells filled with numbers of blanks.  Each row shows the state of the filesystem after one iteration of defragmenting.  There are arrows drawn to indicate where files are removed from and written to.
100
Casey Primozic / ameo @ameo.dev · 26/12/2024
I wrote up some notes about how I used constrained cubic bezier curves in the envelope generator for my browser-based synthesizer cprimozic.net/notes/posts/... They look and sound much better than the x^n function I had before, and I the math involved turned out to be very neat
030
Casey Primozic / ameo @ameo.dev · 01/12/2024
There is an absolutely gorgeous sunset here in Seattle tonight
A photograph of a vivid sunset looking out on downtown Seattle from a rooftop in Capitol Hill
060