Gallery › Painting

Flying White: Reeds at Dusk

A wetland at dusk in dry brush: reeds that run dry toward their tips, a broken reflection, thin mist.

Flying White, a dusk wetland with reeds in dry-brush strokes, a broken reflection in the water and thin mist in the sky
Click the picture for the full-size render.

How it is made

Built around paintkit's pkdry dry-bristle brush. Each reed stalk is a loaded base and a drier, more broken tip sharing an endpoint; the water carries a broken reflection and the sky a thin dry-brush mist. The same primitive is used at three scales, over a banded dusk gradient from mix3.

Details

Category
Painting
Tags
landscape
Libraries
artkit, paintkit
Added
2026-08-22
Built in
issue #80
Page size
700 × 460 points

Source

View source the whole program in a scrolling window, or read gallery/flying_white_reeds.ps on GitHub. To draw it yourself, from a checkout of the repository:

pscat --page 700x460 gallery/flying_white_reeds.ps
The first 40 of 239 lines of the source
%!PS-Adobe-3.0
%%Title: Flying White: Reeds at Dusk
%%BoundingBox: 0 0 700 460
%%EndComments

% A wetland at dusk, built to put lib/paintkit.ps's `pkdry` (issue #43)
% front and center rather than treat it as a texture afterthought.
% "Flying white" (feibai) is the classical name for exactly what pkdry
% models: a brush run dry enough that individual bristles lose and
% regain contact with the paper, leaving streaks of bare ground inside
% what reads, from a distance, as one continuous stroke. Every reed
% stalk here is two `pkdry` calls sharing an endpoint -- a loaded, mostly
% -solid base and a drier, more broken tip -- so the breakup is doing
% real compositional work: it's how a reed reads as *rising out of*
% wet ground into dry air, not just an even width running out of ink.
% The water's reflection streaks and the birds are also `pkdry`, at the
% opposite extreme: a handful of bristles, mostly gap.
%
% Sky and water are plain banded gradients (ember_tree.ps's technique,
% ported to artkit's `mix3`/pal machinery instead of a hand-rolled HSB
% conversion) so the brushwork has an uncluttered field to sit in.
%
% Seeded rand: same file, same reeds, run to run.

(lib/artkit.ps) run
(lib/paintkit.ps) run
11 srand

/rd-ink     [0.15 0.11 0.09] def   % near-black warm ink, foreground reeds
/rd-pale    [0.97 0.92 0.80] def   % pale cream -- reads against dark water
/rd-horizon 150 def                % y of the shoreline

% x y w h rd-hbox -   (filled rect, ember_tree.ps's `box`)
/rd-hbox {
    4 dict begin
    /h exch def /w exch def /y exch def /x exch def
    newpath x y moveto w 0 rlineto 0 h rlineto w neg 0 rlineto
    closepath fill
    end
} def