Another rasterizer I've made in a little time for fun, although this one is much faster and uses a more proper rasterization method. How it works: For every triangle ABC, the renderer first calculates its incenter I and inradius R. It chooses a fraction q of the inradius: r = q x R Then every vertex is moved toward the incenter: A' = I + (1 - q) x (A - I) The same is done for B' and C'. This creates a smaller triangle inside the original one. Its edges are exactly r units away from the original triangle's edges, meaning a pen line with radius r can be drawn along them without overflowing outside the triangle. Scratch's thick pen lines have rounded ends, so each line is basically a capsule: a line surrounded by a circle of radius r. You can also think of it as infinitely many overlapping circles along one segment. This lets a large amount of the triangle be filled with only one pen movement. The renderer also calculates how "regular" the triangle is: Q = (4 × √3 x Area) / (a² + b² + c²) Q = 1 means the triangle is equilateral. Q -> 0 means the triangle is becoming extremely thin. I numerically optimized several different inset stroke patterns. The renderer chooses which pattern to use depending on Q, so regular triangles need fewer strokes while thinner triangles use slightly more. Most triangles can be filled using around 6-8 pen strokes while still covering roughly 99%+ of their area. Finally, the triangle edges are drawn using the same color as the face. This covers most remaining gaps without making the model look like a wireframe.