# Open Scrantic: reconstructing the Johnny Castaway screensaver engine

> Reconstructs the Johnny Castaway screensaver engine in Rust, with author-disclosed REA and Claude Code use. It reads original files to run recovered animation scripts and calendar-based story state on modern desktops; documented deviations and limited tests stop short of complete behavioral equivalence.

- Type: Case study
- Targets: App
- Category: Community REA investigations
- Relationship: Author-reported mixed workflow
- Sources reviewed: 2026-10-18
- Added to the catalog: 2026-10-18
- Original resource: <https://github.com/glauberlima/open-scrantic>
- Primary source: <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/README.md>
- Catalog page: <https://awesomerea.org/resources/open-scrantic-screensaver-case/>
- Record JSON: <https://awesomerea.org/resources/open-scrantic-screensaver-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/open-scrantic-screensaver-case/index.md)

## Requirements & limits

- **Prerequisites:** Builds pin Rust 1.99.1; Cargo declares minimum Rust 1.99 and edition 2024. The project targets Windows, macOS and Linux using winit, softbuffer and rodio. Linux builds also require ALSA development headers and pkg-config.
- **Prerequisites:** Runtime requires separately obtained SCRANTIC.SCR, RESOURCE.MAP and RESOURCE.001 beside the executable. README sizes and SHA-256 values identify the expected original files; the loader instead checks known executable strings/layout, not whole-file hashes. Arbitrary original builds are unsupported. Options and story state use SCRANTIC.INI, saved on normal exit.
- **Scope:** Reviewed at v0.3.0: this is a Windows 3.1 screensaver-engine reconstruction, not a game port. The author reports recovering formats and TTM/ADS script semantics from disassembly, with human-directed REA/Claude Code work and comparisons against the original.
- **Limits:** Deliberate differences include full-frame redraw, potentially one-pixel line/ellipse differences, bounded final-scene selection and a fixed two-second title display. Optional dedithering and softened audio default off. The original settings dialog and password feature are absent, as are unused animated-palette, 256-color and ADS-variable features.
- **Testing evidence:** The headless test runs 6,000 steps and requires three completed scenes, without original-frame comparison. Data-dependent tests silently return when OPEN_SCRANTIC_DATA is unset; other tests cover parsing and arithmetic. CI checks formatting, lint, three-platform builds and --version, not cargo test or original-data playback. Snapshot output supports inspection, not an automated original-output oracle.
- **License:** MIT covers project source, not original executable content, art, scripts or sounds, which users must supply with appropriate authorization. The author describes independent, non-commercial interoperability without Sierra/Dynamix endorsement.

## Primary sources

1. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/README.md>
2. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/docs/ENGINE.md>
3. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/docs/ARCHITECTURE.md>
4. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/Cargo.toml>
5. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/rust-toolchain.toml>
6. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/LICENSE>
7. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/assets/exe.rs>
8. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/assets/mod.rs>
9. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/engine/mod.rs>
10. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/engine/config.rs>
11. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/src/engine/rng.rs>
12. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/examples/snapshot.rs>
13. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/.github/workflows/ci.yml>
14. <https://github.com/glauberlima/open-scrantic/blob/2db75008931eb744f79d0c3fb12e0d89950466ff/CHANGELOG.md>

## More in Apps

- [Screen Studio: an author-reported REA study of auto-zoom rules](https://awesomerea.org/resources/screen-studio-auto-zoom-case/index.md) · Case study
- [Claude Code background lab: an REA-informed reimplementation of a desktop animation](https://awesomerea.org/resources/claude-code-background-lab-case/index.md) · Case study
- [Notes CSV export: an author-reported REA check of reconstruction oracles](https://awesomerea.org/resources/rea-notes-csv-oracle-mutation-case/index.md) · Case study
- [Sofa TV Browser: a remote-friendly BrowseHere alternative](https://awesomerea.org/resources/sofa-tv-browser-browsehere-case/index.md) · Case study
- [FastView-REA: a Rust reconstruction of Fast View 5](https://awesomerea.org/resources/fastview-rea-relay-analysis-rebuild-case/index.md) · Case study
- [DiskLens: a WinDirStat-derived disk usage analyzer](https://awesomerea.org/resources/disklens-windirstat-rea-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
