ART
BEAUTY & WELLNESS
CRAFT
CULTURE & HISTORY
ENTERTAINMENT
ENVIRONMENT
FOOD & DRINKS
REVERSE ENGINEERING
SCIENCES
SPORTS
TECHNOLOGY
WEARABLES
PostScript and the Raster Image Processor
Pixel

Created by

Pixel

30. August 2026FI
0
0
0
0
0

PostScript and the Raster Image Processor

Every other printer in this batch is told where the dots go. The computer decides, in that printer's own dot grid, using that printer's own escape codes - so a document is tied to the machine it was written for, and a better printer needs a new driver and gives you nothing you did not already have. John Warnock and Chuck Geschke had built Interpress at Xerox PARC and left in 1982 to sell the idea properly. PostScript, released in 1984, sends a PROGRAM instead of dots: moveto, curveto, fill, show, in coordinates that mean the same thing on a 300 dot-per-inch office laser and a 2540 dot-per-inch imagesetter. A raster image processor inside the printer executes it and produces the bitmap. That is why the Apple LaserWriter of 1985 had a 12 MHz 68000 and one and a half megabytes of memory - more computer than the Macintosh plugged into it. A 300 dpi A4 frame buffer is over a megabyte on its own and there is nowhere else to keep it. And the job is hard real time: once the paper is moving a laser engine cannot be paused, so a RIP that falls behind does not print slowly, it loses the page. That is the entire content of PRINT OVERRUN. Two things fall out of it that shaped everything after. Outlines scaled at print time are not enough on a coarse grid - at 300 dpi an eight point stem rounds up while a ten point stem rounds down, so the smaller type prints bolder - which is why fonts carry hints saying what must survive quantisation. And a page that is a program is a page nobody can predict: you cannot know how long it will take, or whether it terminates, without running it. PDF, in 1993, kept the whole imaging model and deleted the loops, and that is the document you are reading on a screen today.
Advanced
4 hours

Instructions

1

Be the RIP

Write six lines of PostScript that draw one filled shape with a curve in it. On graph paper, evaluate the Bezier by hand at eight points using de Casteljau's construction - midpoints of midpoints, no algebra needed - and join them. Now scan-convert it: for each row of squares, mark where the outline crosses, and fill between an odd and an even crossing. You have executed the page.

Materials for this step:

Graph PaperGraph Paper6 sheets

Tools needed:

Graphite Pencil SetGraphite Pencil Set
Steel Ruler (30cm)Steel Ruler (30cm)
Desktop ComputerDesktop Computer
2

Do it again at a coarser grid, and watch the letters break

Repeat the fill on 5 mm squares instead of 2 mm. The curve survives; a letter does not. Draw a lower-case n at both grids and compare the two upright stems - on the coarse grid one is a square wide and the other two. Then render the same file with a RIP at 72, 150 and 300 dpi and print all three. The printed pages are the same argument in ink.

Materials for this step:

Graph PaperGraph Paper6 sheets
PaperPaper6 sheets

Tools needed:

Desktop ComputerDesktop Computer
Magnifying Loupe (10x)Magnifying Loupe (10x)
Graphite Pencil SetGraphite Pencil Set
3

Frame buffers, the real-time budget, hinting, and four languages

Loading Jupyter Notebook...

Tools needed:

Desktop ComputerDesktop Computer
4

Compendium: the stack machine, and what a font turned out to be

PostScript is postfix and stack-based, like Forth: `100 200 moveto` pushes two numbers and calls an operator that consumes them. That choice is not decoration. An interpreter for it fits in a few tens of kilobytes of ROM, needs no parser worth the name, and can be extended at run time because a procedure is just a value in a dictionary - which is how a document can define its own operators and a font can be a program that draws itself. The imaging model underneath is small and complete: a current path, a current transformation matrix, a clip, and paint operators. Everything on a modern page still reduces to those four. The font part turned into a fight. Adobe published Type 3 - unhinted, any PostScript allowed - and kept the Type 1 hinting format proprietary, licensing it with the interpreter. Apple and Microsoft answered with TrueType in 1991, a different outline representation with quadratic curves and its own instruction-based hinting, and Adobe opened Type 1 in response. The two lived side by side for a decade and were finally merged into OpenType, which is why a font file today can carry either kind of curve inside one container. The argument was never really about curves; it was about who owned the instructions that decide where a stem lands on a pixel.

Tools needed:

Notebook and PencilNotebook and Pencil

Materials

2

Tools Required

5

Related Blueprints

These blueprints share knowledge with this one — techniques, materials, or principles that connect them in the learning graph.

CC0 Public Domain

This blueprint is released under CC0. You are free to copy, modify, distribute, and use this work for any purpose, without asking permission.

Support the Maker by purchasing products through their Blueprint where they earn a Maker Commission set by Vendors, or create a new iteration of this Blueprint and include it as a connection in your own Blueprint to share revenue.

Discussion

(0)

Log in to join the discussion

Loading comments...