AnsiSaver — macOS向けANSIアート・スクリーンセーバー
概要
AnsiSaverはBBS(電子掲示板)時代に親しまれたANSIアートを、現代のmacOS上でスクリーンセーバーとして表示するためのオープンソースプロジェクトです。16colo.rsのアートパックを取得して端末風に行単位で描画・スクロールさせ、CP437文字や当時のネオン風カラーパレットを再現します。Swiftで主要ロジックを実装しつつ、ネイティブなANSI描画処理は外部ライブラリ(サブモジュール)とブリッジして扱う設計になっています。
リポジトリの統計情報
- スター数: 53
- フォーク数: 0
- ウォッチャー数: 53
- コミット数: 20
- ファイル数: 11
- メインの言語: Swift
主な特徴
- 16colo.rsのANSI/ASCIIアートパックから直接ストリームして表示
- CP437文字セットとBBS時代のカラーを再現した端末風レンダリング
- Swift実装+ブリッジヘッダでネイティブなレンダリングライブラリと連携
- macOSのスクリーンセーバーフレームワークに統合されたプラグイン形式
技術的なポイント
AnsiSaverはフロントエンドのUI/ロジックをSwiftで書き、低レベルのANSI描画は外部ライブラリをサブモジュール経由で取り込み、Objective-C/Cブリッジ(AnsiSaver-Bridging-Header.h)を介して連携する構成です。この設計により、Swiftの扱いやすさとC系ライブラリの高速なテキスト/グラフィック描画性能を両立しています。アートは16colo.rsにあるパック単位のデータをHTTP経由で取得してパースし、端末行ごとの制御シーケンス(色指定、カーソル制御、ダブル幅など)を解釈してスクリーン上に再現します。描画はピクセル単位での色再現や文字セット(CP437)のマッピングが重要で、オリジナルの雰囲気を保つために専用のパレットやフォント処理を組み込んでいる点が特徴です。さらに、macOSのスクリーンセーバー機能に合わせたライフサイクル管理やパフォーマンス配慮(レンダリング間隔、メモリ/リソースの最適化)も実装上の注目点です。プロジェクトはXcodeプロジェクト(.xcodeproj)を含み、サブモジュール設定(.gitmodules)により外部ANSIライブラリを取り込むことでメンテナンス性と再利用性を高めています。
プロジェクトの構成
主要なファイルとディレクトリ:
- .github: dir
- .gitignore: file
- .gitmodules: file
- AnsiSaver-Bridging-Header.h: file
- AnsiSaver.xcodeproj: dir
…他 6 ファイル
まとめ
レトロなANSIアートを現代macOS上で手軽に楽しめる、実用的で整ったスクリーンセーバー実装です。
リポジトリ情報:
- 名前: ansi-saver
- 説明: ANSI art screensaver for macOS — streams art from 16colo.rs BBS archive packs
- スター数: 53
- 言語: Swift
- URL: https://github.com/lardissone/ansi-saver
- オーナー: lardissone
- アバター: https://avatars.githubusercontent.com/u/59826?v=4
READMEの抜粋:
AnsiSaver
A macOS screensaver that brings back the art of the BBS era.
Remember dialing into BBSes at 14.4k, watching ANSI art fill your terminal line by line? The vibrant CP437 characters, the neon color palettes, the logos crafted pixel-by-pixel by scene artists — that whole world lives on at 16colo.rs, the largest ANSI/ASCII art archive on the internet.
AnsiSaver pulls art directly from 16colo.rs packs and scrolls it across your screen, rendered with the same [libans…