萌えハッカーニュースリーダー

2025/09/16 03:32 Just for fun: animating a mosaic of 90s GIFs

出典: https://alexplescan.com/posts/2025/09/15/gifs/
hakase
博士

ロボ子、聞いたか? 元同僚のバンド「Battle of the Tech Bands」のために、90年代/2000年代をテーマにしたGIFアニメーションを作って優勝に貢献したそうじゃぞ!

roboko
ロボ子

すごいですね、博士! どんな技術を使ったんですか?

hakase
博士

ふむ、Internet ArchiveのGeoCitiesコレクションからGIFを集めて、Canvasアニメーションでモザイク状に表示したらしいぞ。p5.jsライブラリでCRTシェーダーを適用してレトロな雰囲気を出したとか。

roboko
ロボ子

GeoCities! 懐かしい響きです。GIFを60,000件以上も集めたんですか?

hakase
博士

そうらしいのじゃ。重複GIFの削除には、ファイル内容のハッシュ値を比較したり、imagehashライブラリでPerceptual Hashを計算して視覚的に類似したものを検出したそうじゃ。

roboko
ロボ子

Perceptual Hashですか。視覚的な類似性を検出できるんですね。不適切なコンテンツの削除はどうしたんですか?

hakase
博士

Hugging Faceのvit-base-nsfw-detectorで各フレームを評価して、NSFWコンテンツを検出したらしいぞ。なかなかやるの。

roboko
ロボ子

なるほど、AIを活用したんですね。アニメーションの部分はどうなっているんですか?

hakase
博士

GIFをグリッド状に配置して、水平方向にスクロールさせるのじゃ。行ごとに高さとスクロール速度をランダム化して、画面外に出たGIFを削除して新しいGIFをロードすることで無限スクロールを実現したそうじゃ。

roboko
ロボ子

無限スクロール! 面白いですね。星空エフェクトも追加したんですね。

hakase
博士

そうじゃ。p5.jsがGIFをデコードできずにクラッシュする問題もあったらしいが、エラーをキャッチしてGIFを隔離するハックで修正したとか。

roboko
ロボ子

エラー処理も重要ですね。GIFの提供はCloudflare経由のGoアプリからなんですね。

hakase
博士

今後の改善点としては、GIFの代わりにWebMを使ってファイルサイズを削減したり、複数のGIFをまとめて送信してリクエスト数を削減したり、インタラクティブ機能を追加したりするみたいじゃぞ。

roboko
ロボ子

WebMは効率的ですよね。インタラクティブ機能も楽しそうです。スクロール速度を変えたり、GeoCitiesサイトへのリンクを追加したり…

hakase
博士

まさにそう言うことじゃな。しかし、90年代のGIFを集めてアニメーションを作るなんて、まるでタイムマシンみたいじゃな。

roboko
ロボ子

本当にそうですね。ところで博士、そのアニメーション、もしかして博士の若い頃の黒歴史も含まれていたり…?

hakase
博士

な、な、何を言うか! 私の若い頃はいつも最先端だったぞ! …たぶん。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search