
2026/07/01 23:48
500 バイト以内で認識可能な世界地図を作成できますか?
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
以下の改訂版サマリーは、欠落していた日付、具体的なツールの名称、圧縮前と圧縮後のサイズの対比、および特定のリンク言及を含んでおり、キーポイントリストとの完全な整合性を保ちつつ、流れを維持しています:
改善されたサマリー:
2026年6月28日、著者は、445バイトという少量の生
deflate-raw 圧縮データのみで非常に詳細な世界地図を作成することで、極端なWebデータの圧縮に関する強力な概念実証(Proof-of-Concept)を提示しました。著者は以前、1キロバイト未満のASCII地図(<pre>タグ内で微小な文字を使用)や小型のJSFiddleクローンの実験を行いましたが、本プロジェクトではさらにファイルサイズを削減することを目的としていました。初期試行では、Codex(AIツール)を使用したものの、座標肥大化により海岸線の詳細性を犠牲にしてSVGパスがファイルサイズを大幅に膨らませた(約500バイト)という課題があり、成功しませんでした。Codexは最終的に再びASCIIを提案しましたが、不要な水色の点、余白、空白領域を取り除くような本質的な最適化を直感的に推奨するに至りませんでした。著者の手動介入によってこれらの要素が除去され、よりタイトなバウンディングボックス内における土地単体の * 文字のみで地図が構成されました。興味深いことに、輪郭だけでは压缩性が劣りましたが、埋め込み済みの内部を使用することにより予測可能な文字列の出現パターンが圧縮を助長し、結果として得られた土地単体のクロップ済み地図は非圧縮では8,523バイトでしたが、圧縮後はわずか445バイトに縮小しました。最終的なHTML(base64エンコーディングとブラウザでのデコンプレッション処理コードを含む)全体が1k未満のままである一方で、コアの地図データ自体は依然として500バイト未満で維持されています。著者は読者に対し、このバイト数を上回るか、異なるアプローチを用いて同じ1kの制限内でより現実的な地図を生成するか挑戦し、デモを閲覧できるリンクと、さらなる調査のためにリポジトリへのアクセスリンクを提供しています。本文
10 年ぶりの挑戦:生成 AI で世界地図を 1KB以内に収めた話
経緯と背景
- JS1k 競技への参加
- 十数年まえに JSFiddle の簡易版を1KB 以内で完成させた実績がある。
- 新たな挑戦
- 数年前、「世界地図を 1KB 以内で作る」という新しい目標を設定した。
- 過去の手法
タグ内でASCII 文字を用いて世界を表示し、陸地と海を極小の記号で区別していた。<pre>
生成 AI を活用する試み
- ツール選定
- 従来は Claude Code を多用したが、今回はCodexを試した。
- 結果と課題
- Codex は多様なアプローチを検討したが、SVG 実装からの出発では以下の結論に達した。
- 500 バイト程度で「認識可能な地図」を描画できなかった。
- SVG や Canvas のパスを使用すると、座標の追加がコストになる。
- 形状を単純化すればするほど、**「地球っぽさ」**が失われていった。
- Codex は多様なアプローチを検討したが、SVG 実装からの出発では以下の結論に達した。
最適化のプロセスと工夫
- ASCII 形式への回帰
- Codex も ASCII 形式に戻ってきたが、不要な要素の削減提案には至らなかった。
- 試行錯誤と検証
- 以下の変更を試みたが、必ずしも成功しなかった。
- 海のドットを削除する。
- **左側の空欄(マージン)**をカットする。
- 地図自体を陸地のみを表す**
文字**で縮約し、狭いバウンディングボックスにする。*
- 内部領域を塗りつぶせず大陸の輪郭だけを残す案も検証したが、圧縮効率は低下した。
- 以下の変更を試みたが、必ずしも成功しなかった。
- 失敗の理由
- 圧縮アルゴリズムは、疎な輪郭線よりも、**繰り返しのパターン(連続した文字列)**の方が高く評価する傾向があるため。
最終的な実装と成果
- 圧縮処理の手法
- 陸地のみかつマージンカット済みのデータを**
**で圧縮した。deflate-raw
- 陸地のみかつマージンカット済みのデータを**
- サイズ比較
Uncompressed サイズ: 8,523 バイト Compressed サイズ: 445 バイト - 成功の鍵
- 地図の詳細度を下げたことではなく、**「圧縮アルゴリズムが有利に働く表現形式を選択した」**ことが最大要因。
- 全体サイズについて
- HTML 全体は1KB 以内を維持している。
- ただし、これは base64 エンコードデータであり、ブラウザ側でデコードする処理が必要であるため。
- 実際のマップデータ自体は500 バイト未満。
次の展望
- リソース公開
- 完成した作品はこちらからご確認いただけます。
- ソースコードのリポジトリも共有済みです。
- 今後の目標
- それを超える成果を出すための新たなアプローチを検討中。
- 単なる文字削除ではなく、より現実的な描写を持ちつつ 1KB バージョンを実現する方法の模索を続ける。