---
title: 'Programmable and rail-pair satin'
part: 'Part VII — Fabric Physics and the Professional Layer'
partNumber: 7
order: 5
subtitle: 'Spine reporters, authored rails, checkpoints, raking, and column tuples'
---

_Content coming soon._ The original programmable-spine contract is joined by `satinbetween`:
two authored rails, optional correspondence checkpoints, reporter shaping, `railspine`, and
the `railinset`/`railrake` tuple helpers.

<Run>{`// A tapered satin leaf using satnpair
def taper(t, s, i, u) [
  let w = smoothstep(0, 0.5, s) * 4
  return satinpair(0.4, w)
]
satin @taper
repeat 8 [ fd 15 rt 5 ]
repeat 8 [ fd 15 rt 5 ]`}</Run>

<Checkpoint chapterId="ch-44">Chapter content coming soon.</Checkpoint>
