PowerShell ColorScripts Enhanced

PowerShell ColorScripts Enhanced by Typpi / Nick2bad4u

View on GitHub

Artwork Sources and Provenance

ColorScripts-Enhanced combines project-authored renderers with curated third-party ANSI and ASCII art. Source availability does not by itself grant redistribution rights, so imports are reviewed for licensing, provenance, duplication, encoding, dimensions, and rendering behavior before conversion.

Current Provenance Records

New curated imports are recorded in the repository-only ArtworkProvenance.psd1. This is the authoritative record for source collections, pinned revisions and archive hashes, source and rendered hashes, encoding, conversion mode, attribution, SAUCE details, and split coordinates. It remains outside the publishable module; a generated artwork-details page exposes a compact web index without adding the roughly 53 MiB PSD1 file to every PowerShell Gallery installation.

Each mapped script carries one offline-readable title/artist line and a script-scoped details URL. The executable Write-Host payload contains no archival metadata, and migration evidence in ArtworkHeaderMigration.json hash-locks the original header, the replacement header, and the unchanged payload. Older scripts without an exact registry entry keep their existing headers; provenance must never be guessed. Their whole-script hashes normalize only CRLF pairs to LF, so Git’s platform-specific checkout conversion does not create false drift; every other byte remains hash-locked.

The corresponding third-party notices are:

The older catalog predates this per-file registry. Missing historical provenance must not be replaced with guesses.

Collections to Browse

botany

Botany is a terminal plant-growing application with compact ANSI plant artwork. All 72 ANSI files fit within 120 columns by 50 rows and rendered cleanly. The import selects 17 visually distinct flowering final-stage files; the other 55 are primarily earlier growth, seed-bearing, death, mutation, or redundant variants. These files are already sequential ANSI streams, so conversion preserves their original SGR sequences and CRLF geometry byte-for-byte in passthrough mode instead of flattening them through the terminal emulator. A source-hash regression test prevents later conversion or line-ending changes from altering their colors or spacing.

os-ansi

This collection focuses on operating-system logo ANSI art. Only the five-color macOS and four-color CentOS logos meet the required multicolor threshold after every source was compared with the full rendered catalog. The other 34 files use no more than two explicit hues and are rejected as monochrome or duotone. The accepted files are LF-only ANSI streams whose line-feed behavior is significant, so they use byte-preserving passthrough conversion and protected Git attributes instead of terminal-emulator reconstruction or Windows line-ending conversion.

Asciiville

Only Ronald Record’s compact 67-by-4 Asciiville wordmark has a sufficiently clear authorship and MIT license chain. It uses nine visible 256-color foregrounds and is preserved as an LF-only passthrough stream. The other galleries are not bulk-imported: 686 multicolor files are roughly 400–500 rows tall, and most are conversions of externally sourced Flickr, Wallhaven, vintage, or otherwise undocumented images. The Vintage directory also has conflicting public-domain and noncommercial notices. A project license on the conversion does not prove rights to relicense the underlying image.

Durdraw

The native indyz-kali.utf8.ans example contains 2,481 SGR sequences across exactly 32 rows and is preserved byte-for-byte instead of being reconstructed at the wrong 61-row geometry. Durdraw’s richer .dur examples remain future candidates because they require a frame-, timing-, glyph-, and palette-aware parser.

16colors artist-authorized archive imports

The archive remains a browsing and preservation service; public availability is not treated as a license. For this project, the maintainer attested on 2026-07-22 that artists, rights holders, or an explicitly authorized representative granted project-specific permission to redistribute and convert artwork from the 16colors and Roy/SAC sites with attribution. This does not relicense the archive for unrelated uses.

The resumable npm run ansi:audit -- --source=all workflow enumerates the canonical pack API and Roy download inventory, caches raw candidates and previews under ignored temp/, fingerprints source bytes and rendered terminal cells, rejects monochrome and duotone output, and writes an interactive review sheet. A candidate is imported only after general-audience, artistic-quality, composition, terminal-safety, duplicate, and attribution review. The normal gallery limits are 120 columns and 50 rows per script. Tall art is kept in contiguous source-row order; wide art is split only at coherent panel boundaries and is otherwise rejected. Source margins and background-colored spaces remain intact except where the tracked post-import content audit blanks standalone writing, readable prose embedded in framed panels, or policy-ineligible display cells and removes rendered-blank rows after the final retained artwork row. Explicit Passthrough conversion markers protect byte-preserved sources from those mutations.

The 1990-2026 review is complete, and its retained works are in the module. Across those 37 archive years, the audit enumerated 5,479 packs and reviewed 64,929 .ANS or .ICE candidates. Post-import content, adult-policy, quality, source-continuity, and duplicate-render curation leaves 15,073 accepted works represented by 21,495 scripts. The content checkpoint records 49,772 reviewed text, contact, or policy rows blanked without narrowing their canvases; 23,971 trailing rendered-blank rows removed after restoring 34 source-significant passthrough rows; 8,610 rows compacted only after curation made them blank; 62 explicitly reviewed rows removed; and 767 high-confidence geometry rows removed. The geometry total includes 26 rebalanced families represented by 134 scripts, with 69 generated presentation rows discarded separately from source-row accounting. It also records 299 empty, low-quality, source-incomplete, duplicate-render, adult-policy, or principally promotional scripts removed. The archive checkpoint records each year’s inventory fingerprint and disposition totals, one source/hash entry per retained original work, and exact-source duplicates already represented elsewhere in the gallery.

The API inventory currently reports 5,487 packs but returns 5,479 records. Live refreshes through 2026-07-24 reproduced the same eight-record gap at both 500- and 250-record page sizes. Those unreturned records provide no pack name, year, or file metadata to inspect; the checkpoint retains all three counts explicitly. A completed-year claim therefore means every pack record the canonical API actually returned for that year was audited, not that the project inferred or silently skipped the eight opaque records.

The Lake House is decoded from CP437 at its declared 80-column width without background stripping. Its 200 populated terminal rows are preserved as 1-40, 41-80, 81-112, 113-144, 145-176, and 177-200; the first three scripts form the continuous landscape and the final three preserve its BBS menu panels.

This is traditional CP437/SAUCE BBS-scene artwork. The collection comprises 84 works represented by 104 scripts from the dedicated archive review, 35 normalized legacy works represented by 40 scripts, and 7 additional Roy-authored works from 16colors represented by 9 scripts. The live 16colors Roy queue closed with seven accepts and two rejects. The two .BIN files are outside this curation plan’s supported .ANS/.ICE formats and were not converted.

Every Roy-authored script remains independently licensed under FAL-1.3, names Roy/SAC (Carsten Cumbrowski), links its exact source, records the available source and archive hashes, and describes the conversion. This includes Roy works discovered through 16colors; they are not moved into the permission-based 16colors-permitted collection. This deliberately follows Roy’s stricter 2008 copyleft statement even though his 2006 and current gallery language says public domain. Other artists represented in SAC packs are evaluated under the separate artist-authorized permission attestation and never relabeled as Roy-authored or FAL-1.3 work.

Future Candidates Requiring a Dedicated Renderer

HyFetch

HyFetch is the largest promising next source, but its files are parameterized palette templates containing tokens such as ${c1} rather than finished ANSI streams. Importing them correctly requires a palette-aware renderer, rendered-output deduplication, a bundled license notice, and review of distribution-logo attribution or trademark concerns.

Fastfetch

Fastfetch is another large operating-system logo source with similar template, palette, rendered-duplicate, attribution, and trademark concerns. It should share the HyFetch renderer and review pipeline instead of being flattened by the general ANSI converter.

Durdraw animated examples

Durdraw is the strongest next animated collection. indyz-space-shaman.dur, indyz-xmas.dur, indyz-dopehax-256.dur, and cm-eye.dur are 79-87 columns by 23-26 rows with 5-16 frames and rich palettes. The native indyz-kali.utf8.ans stream is already imported. The .dur files are compressed JSON with per-cell colors, frames, and timing; a correct importer must parse that format rather than rasterizing GIF previews. Character/meme pieces such as the Doge examples should be excluded.

Cataclysm: Dark Days Ahead ASCII-art data

This is the largest cleanly licensed additional collection. Strong generic candidates include umbrella (41x30, 6 colors), electrohack (36x14, 8), paint_can_plastic and paint_can_steel (14x11, 12 each), aquarium_small (32x9, 4), manual_first_aid (41x34, 4), and textbook_chemistry (41x35, 4). The JSON uses semantic <color_name> tags, so conversion needs a documented tag-to-ANSI map. Any imported file must remain separately licensed and attributed under CC BY-SA 3.0.

Nuru sample images

The art-like candidates are house (9x4, 5 colors), togglebit (14x7, 7), nuru-cat (64x11, 15), nuru-dot-net (63x5, 5), and nuru (78x12, 8). CC0 makes the rights boundary simple, but .nui is a binary glyph/palette format and requires a native parser. Screenshots are not acceptable conversion sources.

PowerShell Paint

spiral (12x12, 16 colors), snake (28x28, 7), and heart (28x28, 3) are plausible generic imports. The Pokémon, Clippy, and branded pwshcorn pieces are excluded. A future RGB-cell importer must document its aspect policy; if half-blocks compact vertical pixels, it must not also compact the horizontal axis.

Procedural and generator sources

Collections Rejected for Redistribution

Existing Upstream Collections

These remain useful for browsing and historical context:

Archive access is not a blanket license. Review the actual pack/file terms and author attribution before importing anything.

Import Requirements

For every new third-party import:

  1. Record the canonical source URL and a pinned revision or archive hash.
  2. Record the source file path/hash, encoding, artist or pack attribution, and applicable license or permission.
  3. Preserve the exact license or evidence in ColorScripts-Enhanced/ThirdPartyNotices/.
  4. Deduplicate against both source ANSI assets and normalized rendered terminal-cell fingerprints.
  5. Decode traditional DOS/BBS art using its real encoding, usually CP437.
  6. Preserve SAUCE geometry, iCE state, colored spaces, margins, and blank rows; validate terminal dimensions and split only where visual composition remains coherent.
  7. Compare the generated scripts with the raw source using npm run ansi:verify-conversion -- --source=<file> --prefix=<script-prefix>; exact terminal-cell and coordinate coverage must match.
  8. Add metadata and run corpus, conversion, rendering, documentation, and packaging tests.
  9. Do not claim that an archive, mirror, or gallery relicensed an individual artist’s work.

See ANSI-CONVERSION-GUIDE.md for the technical conversion workflow.