採択
40分

作るを手に入れよう

lestrrat

AIの時代だからこそプログラマは3Dプリンターやりましょう。 コードはAIが書いても、物理的な仕組みを理解するという喜びは誰にも奪えません。そしてプログラマーとしての経験も生かせる最高の体験ができます。


Once men turned their thinking over to machines in the hope that this would set them free. But that only permitted other men with machines to enslave them.(かつて人間は、機械に思考をゆだねれば自由になれると期待したが、それは、機械を持つ別の人間が彼らを奴隷にすることを許したにすぎなかった) -- "Dune" Frank Herbert

今の時代は右を向いても左を向いてもAI、AIです。AIは現時点ではまだ不満点が多いですが、今後起こるであろう急激な進化を考えるならばそのうち人間にも匹敵する何かがうまれる予感もしますし、みんながわくわくするのもよくわかります。

しかしAIの進化を見守りながら我々人間はどうやって生きていけばいいでしょう。というか、AIに何か作らせてその結果で遊ぶとか、つまらなくないですか?どんなときでも我々人間は何かを作りながらいままで生命をつないできたはずです。

冒頭の引用文のような社会構造の話はまた別の機会で話すことにして、とりあえず我々がこれからのAI時代を、物を作る人として楽しんで生きていけるようにしませんか。

特にコンピュータと戯れ、プログラミングでこれまで様々なものを作り上げてきた我々プログラマはどこに目を向けるべきか?それはコンピュータのモニターの外の物理世界でしょう。そこで今まで培ってきたシステム構築の経験を生かして物理世界での継手、ギア、ラッチ、カム、それ以前にそもそも単純にパーツを組み合わせることなどを含めたさまざまな仕組みを知ると、我々が当たり前だと思って受け入れているこの世界が全く違うように見えてくるでしょう。

このトークでは3Dプリンターの軽い入門話と、物理的な仕組みを作る際に知っているべき3Dプリンターの基本ノウハウを皆さんにお伝えして、皆さんがこれから何か仕組みを物理的に作る最初の一歩を踏み出すためのお手伝いをしたいと思います。

1
採択
40分

一週間で作る低レイヤコンテナランタイム

ternbusty Ayako Hayasaka

概要

低レイヤコンテナランタイムの内部構造を題材とし、Kotlin/Native で自作した 1000 行程度の最小構成のランタイムを動作させながら仕組みを分解して解説します。namespace と cgroup v2 によるプロセス隔離から OCI Runtime Specification に準拠したライフサイクル管理まで、実装過程で直面した課題と解決策を共有します。

このトークで得られるもの

  • namespace と cgroup v2 が提供する隔離機能の具体的な使い方
  • pivot_root を中心としたファイルシステム切り替えの手順
  • OCI Runtime Specification が定義する create, start, kill, delete の各操作を CLI で実装する方法

対象者

  • コンテナ技術の動作原理をソースコードで学びたいエンジニア
  • 低レイヤーの実装経験を積みたいが、着手点を探している方

このトークはどう役に立つのか

コンテナは日常的に利用されていますが、その基盤となるランタイムの実装情報は限定的です。本セッションでは 1000 行規模のコードとライブデモにより、複雑に見える処理を段階的に示します。仕組みを自分の手で確かめる過程を追体験することで、抽象化の背後にある Linux カーネル機能と OCI 仕様の関連を理解できます。

5
採択
40分

CPUを作る - 3つの自作CPU

tomzoh 長谷川智希

私はこの数年「趣味: CPU」と自称していくつかのCPUを作っています。
このトークは私が作った3つのCPUの紹介を通して、CPUとはどのようなものなのか、このように動作するのかを解説します。

1)CPUと機械語の基礎知識
そもそもCPUとは何か、CPUが実行出来る唯一のプログラミング言語"機械語"とは何か、メモリアクセス・I/Oアクセスなどの基礎知識を解説します。

2)ソフトウェアエミュレータから見たCPU
CPUについて理解を深めるためにCPUの動作をソフトウェア的に再現するCPUエミュレータの実装を見てみましょう。
ここでは私がPHPで実装したファミコンエミュレータ php-terminal-nes-emulator を題材にCPUの動作をソフトウェア的に再現するとはどういうことか、どんなソフトウェアを書ければCPUエミュレータになるのかを解説します。

3)ハードウェアエミュレータから見たCPU
CPUについての理解が深まったところでもう1つレイヤーを降りてみましょう。
ここでは私がRaspberry Piを使って実装したZ80ハードウェアエミュレータ z80-hardware-emulator - 既存のZ80システムからZ80 CPUのICを取り外してその代わりに取り付けて動作させることを目標としたハードウェアエミュレータを題材に、さらに深くCPUのハードウェアインタフェイスについて解説します。

4)電気回路から見たCPU

ここではCPUのハードウェアインタフェイスを理解できた皆さんをCPU動作の最下層: 電気回路としてのCPUのレイヤにご案内します。
このレイヤではCPU命令は電気回路の配線として表現されます。CPUに供給されたクロックが指揮する電気回路のオーケストラを楽しみましょう!

このトークを聞いたみなさんがCPUを好きになり、みなさんなりのCPUを作り、アツいCPUトークをいっしょにできるようになることを願っています! Love CPU!

4
採択
40分

音のつくり方と楽器のつくり方

asonas asonas

直近1年ぐらいで私が実装した楽器などを製作した成果の発表をします

  1. groovebox-ruby
    RubyKaigi 2025 で「How to make the Groovebox」というタイトルで登壇したときに発表しました。
    RubyKaigi

VCOやVCF といった基本回路を Ruby でモデル化し、dRuby で分散シーケンサを構築した過程を振り返ります。
ここでは「波形を出すだけなら数行で始められる」という敷居の低さを示しつつ、簡単なMIDIの仕組みなどをふまえてデモをやります

  1. Generative Sequencer
    groovebox-rubyで得られた知見を元にランダムな音楽を奏でられるGenerativeなシーケンサーの実装をしました。これはRubyKaigi 2025の事後勉強会で発表しました。
    connpass

とある本に紹介されていた「占い的作曲法」を読んだ衝撃から rand で音楽を作曲してもよいという発想から200行程度のシーケンサーのを実装をしました。
こちらは事後勉強会の登壇当時はRubyで実装しましたが、PicoRubyでの再実装をして小さなマイコンがGenerative Sequencerとして機能します。
こちらもデモをする予定です

  1. 自作ミニモジュラーシンセ
    これも趣味で制作しているものですが、ブレッドボードに載せたマイコン(Raspberry Pi pico)から出ているPWMのジャンパ線を差し替えることで波形の合成やフィルターをかけられるような小さなモジュラーシンセを実装中です。
    Lチカの先に何ができるのか?を考えた時にひとつのアイデアとして音が鳴らせると面白いかなと思って実装中です。

今回のトークで聴衆の方々には、2025年は僕にとって楽器をつくる年で普段仕事で使っている領域とはまた違った学びがあったのでそれをbuildersconに参加される方々にも持ち帰っていただければと考えています。

採択
40分

CUIで解説動画を作るソフトウェアとその内部構造、そしてffmpegとの死闘について

windymelt Windymelt

YouTubeやニコニコ動画、諸君らも大好きだよね?その一大ジャンルとして色々な事柄を解説してくれる動画、いわゆる「解説動画」というカテゴリが存在します。

普通こういった動画は汎用的な動画編集ソフトウェアや各種のプラグインを用いてGUI上で編集していくのが一般的です。でも操作の再現性がないしGUI編集は大変!いつしか動画作成のためには動画を編集するスキルが必須となっていきました。でもそれって良い解説動画のために本当に必要なのかな?知識と文才さえあれば動画を作れる時代のほうが面白いのでは?

そもそも、よく考えると解説動画って画面をセリフごとにレンダリングしていけば割とプログラム的に作れるのではないか?だったら俺たちが慣れ親しんだHTML使ってレンダーできらあっ!

そこで私はXMLをベースとした原稿ファイル、イラスト、BGMといったアセットから自動的に解説動画を生成するためのソフトウェアを開発しました。

私はこのソフトウェアの開発過程において、レンダリングエンジンとしてブラウザを利用したり、原稿を編集しても生成済みの箇所をキャッシュさせてレンダリングは最小限で済むなど、効率的な編集を支える様々なテクニックを導入しました。

音声合成とシーンレンダリングといった非同期処理の塊といってもよい機構を支えるのは何か?複雑な透過合成を支えるffmpegのトリックとは?なぜ口パクにモナドが必要なのか?テキストベースの利点は何なのか?荒れ狂うグラフィックボード、たまにSEGVを吐くブラウザ、かわいいずんだもん、全てをお話しします。

3
採択
40分

Build Your Own Tiny Linker

gorilla0513 ゴリラ

概要

本日のウェブシステム開発では、普段何気なく使っているプログラミング言語がコンパイルする際に、リンカーというプログラムが実行ファイルを作っています。
このリンカーは非常に重要な仕事をしているにもかかわらず、ほとんど目立つこともなく知らない人もいるかも知れません。

そこで本セッションでは、実際に動く最小限のリンカーをRustで実装して得られた知見を元に、リンカーの仕組みを解説します。
「こういう仕組みだったのか!」という驚きと、「自分でも作れそう」という興奮を持ち帰っていただけるセッションです。

このトークで得られるもの

  • リンカーとローダーの役割と協調動作の理解
  • ELFフォーマットの基礎知識
  • シンボル解決とリロケーションの仕組み
  • 静的リンクと動的リンクの違いと実装方法

対象者

  • 「プログラムがどうやって動いているか」に興味があるエンジニア
  • 低レイヤーに興味があるが、どこから手を付けていいか分からない方
  • コンパイラやOSの仕組みに興味がある方
  • 普段使っているツールの中身を理解したい好奇心旺盛な方

なぜこのトークが面白いのか

リンカーは多くのエンジニアにとってブラックボックス、かつあまり世の中に実装の情報が出ていないです。

セッション中に実際に動くデモをお見せし、複雑に見える処理が意外とシンプルな仕組みで動いていることを説明します。
普段当たり前に使っているプログラミング言語の裏側を知ることで、プログラミングへの理解が一段深まるはずです。

「知らなかった」ことを知る楽しさを共有する、buildersconらしいセッションをお届けします。

3