The rails now end at a shoreline. Four vessels join the roster with an
animated sea (swell pattern, glints, hull bob, bow spray, stern wake),
a flapping Jolly Roger and turning paddle wheel on the same 4-frame
machinery as the locomotive wheels, per-vessel liveries and whistles,
an iceberg finale for -a at sea, the Flying Dutchman for -F, and -d,
which summons a dolphin that dives ahead of the ship on the angle its
art was drawn at. The tug travels diagonally for the same reason.
Also ships the outstanding audit fixes: smoke lingers after the train
exits, narrow-terminal crashes stay on-screen, -t fully overrides -l,
make demo runs the train it advertises, --speed documents its clamp,
CODE_OF_CONDUCT.md exists, LICENSE year range updated.
A bare sl now randomizes train type, coal cars, color livery, and
speed each run, with an occasional whistle (25%), rare flight (10%),
and very rare crash (5%). Any explicit flag disables the randomness
entirely, keeping all options deterministic and backward compatible.
Rewrite the README around the project's actual character: surprise
mode odds table, a how-it-works section on the renderer, and a FAQ.
Remove broken references (missing demo gif, SECURITY.md, unverified
Docker image).
Rewrite the animation engine around a flicker-free double-buffered
renderer on the alternate screen. Add turning wheels, particle smoke,
coal cars (-n), train type selection (-t), whistle (-w), rebuilt fly
and accident modes, --no-color/NO_COLOR support, and a static train
when stdout is not a terminal. All v2 flags remain compatible.
- Complete rewrite as standalone Python executable
- Add multiple train types (Classic, D51, C51)
- Implement flying mode, accident mode, and speed control
- Remove external dependencies (now pure Python with ANSI codes)
- Add professional documentation (README, CONTRIBUTING, CHANGELOG)
- Update author information to Reverend Steven Milanese
- Add installation via Makefile
- Clean up virtual environments and old files
- Enhance README with badges, platform instructions, and links
This transforms sl into a production-ready command-line tool following
software engineering best practices while maintaining its core purpose
as a fun terminal animation.