Alexandru Ică
vg-head.bsky.social
Alexandru Ică
@vg-head.bsky.social
Drawing things in the screen @rayon.design

https://minus-ze.ro
Great post on spectral rendering, and a wonderful blog in general: momentsingraphics.de/SpectralRend...
Spectral rendering, part 1: Spectra
momentsingraphics.de
November 26, 2025 at 9:23 AM
One thing I love about digging into rabbit holes such as PDF parsing is stumbling upon phrases like "schizophrenic PDF files".
October 28, 2025 at 1:10 PM
Fun fact: new ICC profiles can contain embedded programs in them that specify color space transforms. All operators describe operations performed on the stack, à la Forth.
April 24, 2025 at 7:01 PM
I wrote a new post about one of the weirdest optimizations I've done at one of my previous jobs. It was fun to explore, hopefully it's just as fun to read. :)

minus-ze.ro/posts/unintu...
Unintuitive Optimization For Performing Paths Union
There is a weird optimization possible when one wants to compute the contour of a lot of vector paths. Here I try to explain why it works.
minus-ze.ro
December 29, 2024 at 6:26 PM
The code for computing winding for a quadratic Bézier can be simplified a lot by dealing with monotonic quadratics only. Testing if a sample lies to the left/right of the curve becomes extremely cheap in that case.
December 20, 2024 at 9:57 AM
"Quadratic Approximation of Cubic Curves" contains a neat method of representing one cubic Bézier as two C1-continuous quadratics, maintaining tangents at the endpoints. Combining that with a heuristic for how many times to split the source curve gives excellent results.
November 29, 2024 at 2:05 PM
I ported my demo to Rust to see if I can make things faster. The goals is to perform queries for arbitrary points and arbitrary vector paths, as fast as possible. I'll try to write everything SIMD-friendly.
November 15, 2024 at 7:41 PM
I've implemented non-zero fill for quadratic curves without flattening them. Should be numerically robust but I haven't tested it too thoroughly yet. Very happy with the results so far. Coverage is computed per pixel individually.
November 12, 2024 at 9:25 PM
Today I remembered that C syntax can be funny beyond typedefs:

int some_function(int input[static 100]);

This is valid C. And it tells the compiler that `input` has at least 100 elements.
November 11, 2024 at 2:49 PM
I'm reading some older blog posts regarding boolean path ops, and I found a great paper in the process. It's short, to the point, and contains intuitive explanations and figures. “Efficient clipping of arbitrary polygons” by Günther Greiner and Kai Hormann.
October 24, 2024 at 7:55 PM
Is there any library that can be used to generate PDFs that contain transparent images? Ideally with a transparency mask. PDFLib and iText seem like valid options, but I'm wondering if there's any open-source alternative for this.
October 9, 2024 at 5:23 PM
I'm using Skia to perform union on potentially a very large number of paths. On a particular case where I had around 2k paths, I saw that after the first ~1.5k it started to get increasingly slower.

Performing basic divide et impera made the whole thing run ~13x faster.
September 5, 2024 at 9:45 PM