世界を動かす技術を、日本語で。

目を覚ませ!16b

概要

  • 2026年のOutline Demopartyで発表された 16バイトのx86アセンブリ作品 「wakeup」の解説
  • Sierpinski三角形 の生成とPCスピーカー出力を組み合わせた 極小デモ
  • 映像と音声が同期 する独自の表現手法
  • ハードウェア依存性 やバイト節約テクニックの詳細解説
  • 小さなコードが生む奥深い数学的現象 の追求

16バイトx86アセンブリによるSierpinski三角形デモ「wakeup」

  • 2026年5月、 オランダ・Ommenで開催されたOutline Demoparty で発表
  • 16バイトのx86リアルモードDOSアセンブリ によるデモ作品
  • Sierpinski三角形 を生成し、同時に PCスピーカー で音を鳴らす構成
  • 開発者は IBM PC(モノクロ緑モニタ) で幼少期にプログラミングを学んだ経験を持つ
  • 過去15年間で 100本以上のTiny Intro を制作した作者による最新作

コード構造とバイト節約テクニック

  • int 10h でビデオモード0(40x25テキストモード)へ設定
  • mov bh, 0xb8 / mov ds, bx でテキストバッファ(0xb800)をデータセグメントへ
  • lodsb / sub si, 57 / xor [si], al / out 61h, al / jmp短距離L という極小ループ
  • ポリモーフィック命令命令途中ジャンプ でバイト節約
  • cellular automaton加算/排他的論理和(XOR) によるパターン生成

メモリ初期化とビデオバッファ

  • BIOSの画面クリア 時、テキストバッファは0x20(スペース)と0x07(色属性)で埋まる
  • 表示上は空白だが、メモリには 一定パターン が存在
  • バッファの初期状態ROM BIOSコードの影響 がサウンドにも現れる

数学的原理とSierpinski三角形

  • 加算(add)による部分和の蓄積XORによるビットプレーン分離
  • Lucasの定理 により、Sierpinski三角形(セルオートマトンrule 60)が自然発生
  • ALレジスタのビット1 だけを利用し、 スピーカー出力 に変換
  • バイト単位の正方波 として自己相似的なサウンドを生成

ステップ幅と画面・音声への影響

  • sub si, 57 / lodsb-56バイトずつ逆方向に移動
  • 80バイト幅のテキスト画面で 10列のみを斜めに描画
  • 8192ステップ で7回ラップし、音声は 1オクターブ低下
  • 映像と音声が同期 し、自己相似的な動きを演出

実機・エミュレータでの動作

  • 実機(286+EGA+MDAモニタ) での動作報告
  • BIOSやRAMの状態に依存 し、環境ごとに微妙な違いが発生
  • メモリ初期化を省略 し、ハードウェアの「自然な状態」を活用
  • サイズコーディング ならではの 偶発的なアート性

参考リンク・リソース

  • Nanogems - デモシーンのTiny Intro特集
  • HellMood's Pouet Productions - 作者の作品集
  • mirageptによる286/MDA/Hercules実機キャプチャ
  • Sizecoding Wiki - 小型コード技法の情報集積
  • Rainbow Surf(Plex作・16バイトx86)
  • M8trix(HellMood作・8バイト)

総括

  • 16バイトという極限の制約 で、映像と音声、数学的美を融合
  • ハードウェアや初期状態への依存性 も含め、唯一無二の表現を実現
  • Tiny Intro の可能性と奥深さを体現するデモ作品

Hackerたちの意見

ディスカッション (209ポイント, 6日前, 34コメント) https://news.ycombinator.com/item?id=48173962

これ、16バイトのデモじゃなくて16BパラメータのLLMだと思ってた。

同感!こっちの方がずっとクールだね!

以前、32バイトのデモがバイナリの限界だと思ってたけど、まだまだ小さくて見栄えが良いのがあるんだね。そのデモは音もなかったし。これは本当に素晴らしい作品だよ。引退後に振り返るべき傑作だね。(現実的には、他のアーキテクチャで追いかけることになるだろうけど)

本当に感動してる。こういうのがプログラミングやコンピュータを好きにさせてくれたんだ。すべてが美しくて、本当にアートだよ。業界ではこういうものを作る機会があまりないのが残念だね、AIとかもあってさ…

これがElectronで作られてたら、たぶん300MBのダウンロードで、RAMも1GBくらい必要だっただろうね。

これが投稿されるたびにアップボートするよ。

これのおかげで、1時間もウサギの穴にハマっちゃった。最終的には、2人が再帰的なパワーポイントプレゼンテーションでシェルピンスキーの三角形を作ってる動画にたどり着いたよ。https://youtu.be/b-Fa6HtvGtQ?si=LpQszgA9_K-m3V3-

ありがとう!すごくリフレッシュできた! :)

リンクされてたデモの一つ、「レインボーサーフ」に夢中になっちゃった。 https://www.youtube.com/watch?v=QKLhH_ANwIc

これが可能だなんて、信じられないよ。

下の「このテキストは手書きです」っていうサイン、めっちゃいいね!