Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
シェーダーもGoで書く! Ebitengineで作る リアルタイムGPUシェーダーエディタ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
cyokozai
June 13, 2026
Technology
96
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
シェーダーもGoで書く! Ebitengineで作る リアルタイムGPUシェーダーエディタ
https://github.com/cyokozai/kagelife
cyokozai
June 13, 2026
More Decks by cyokozai
See All by cyokozai
若手_学生エンジニアがテックカンファレンスに参加すべき5つの理由.pdf
yusuke427
0
28
10Gb ルータを作るための下準備
yusuke427
0
26
アウトプットの質を高めるために僕はLTをやめた
yusuke427
0
29
年末なのでオンプレ Kubernetes クラスタをアップグレードしよう
yusuke427
0
17
さくらのクラウド AppRun と GitHub Actions でお手軽サーバレス構築
yusuke427
2
130
塩漬けになったVM それ、Kubernetesで動かせますよ
yusuke427
2
230
KubeVirt の Live Migration をやってみる | Try KubeVirt's Live Migration on Nekko Cloud
yusuke427
2
710
学生プライベートクラウドはKubeVirt の夢を見るか?
yusuke427
1
180
SREについて学ぶスリーシェイクのインターン
yusuke427
1
310
Other Decks in Technology
See All in Technology
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
550
When Platform Engineering Meets GenAI
sucitw
0
200
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
510
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
590
AIエージェントとPhysical AIが拓く製造業の変革(ハノーバーメッセリキャップ)
iotcomjpadmin
0
170
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
260
Deep Data Security 機能解説
oracle4engineer
PRO
2
230
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
290
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
4.4k
自作お家AIエージェントスタックチャンFWで困っている所紹介
74th
0
160
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
0
130
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
1.1k
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
A Tale of Four Properties
chriscoyier
163
24k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
55k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
320
Ruling the World: When Life Gets Gamed
codingconduct
0
260
The SEO Collaboration Effect
kristinabergwall1
1
490
Building an army of robots
kneath
306
46k
Abbi's Birthday
coloredviolet
3
8.3k
Why Our Code Smells
bkeepers
PRO
340
58k
Deep Space Network (abreviated)
tonyrice
0
210
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
230
Transcript
シェーダーもGoで書く! Ebitengineで作る リアルタイムGPUシェーダー エディタ 2026.06.13 Ramble vol.3
目次 • 自己紹介 • VJ に憧れて • Ebitengineとは • 個人開発のVJツール”KageLife”の紹介
• (時間があれば)デモ
井上 裕介 a.k.a cyokozai 千葉工業大学大学院 情報科学研究科 情報科学専攻 修士2年 ❏ ネットワークコンテンツ研究会
Nekko Cloud Team ❏ 株式会社スリーシェイク sreake事業部 学生インターン ❏ クラウドネイティブ会議実行委員
趣味: DJ (House, EDM, etc) クラウドネイティブ会議の 懇親会でもDJを担当しました
VJ に憧れて
VJ (Video Jockey) • 音楽に合わせてリアルタイムに 映像を演出・操作する役割 • 映像クリップ, CG, カメラの映像
などをその場でミックス • 近年ではシェーダ言語を使った パフォーマンスも有名 https://www.youtube.com/watch?v=vCMrviGfzpE&list=RDvCMrviGfzpE&start_radio=1 Goodbye FROGにて落合氏による DJ / VJ の様子
VJもできるように なりたい
KodeLife • Hexler社が開発しているリアルタイム のGPUシェーダーエディタ • コードをタイピングした瞬間に裏で コンパイルされ即座に映像出力 • コーディングしながらVJできて体験 が良い
https://hexler.net/kodelife
シェーダー言語 (Shader Language) • GPUに対して画面への描画方法や計算を指示するための プログラミング言語 • 代表的な言語 ◦ GLSL:
OpenGLやWebGLで標準的に使われる ◦ HLSL: WindowsのDirectX環境で使用、PCゲーム開発などが主流 ◦ WGSL: 次世代のWeb描画規格であるWebGPU向けに設計された https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
GLSLの特徴 • 並列処理を前提に組まれた言語 • 画面上の座標と最終的な色を計算し出力することに特化 • 空間座標や色を表現するベクトル (vec3, vec4) や回転など
を計算する行列 (mat4) などの数学用データ型を標準装備 • 構文はCに近いのでコツをつかめば....?🤔
シェーダー言語むっず.... • レンダリングエンジンの知識+線形代数 • パフォーマンスにはある程度慣れが必要 入門してすぐ挫折
Ebitengineとは
A dead simple 2D game engine for Go https://ebitengine.org/ja/
Ebitengine ぷちConf #4 に参加したことがきっかけ • Ebitengineを使ったシェーダーのデモを 見て「これだ」と思った • 1つのコードで全ての環境で動かせる! •
Goライクなシェーダー言語 Kage がある! • ついでにGoを書く練習になるぞ
個人開発のVJツール ”KageLife”の紹介
KageLifeとは • Goの構文でシェーダーを操作するレンダリングエンジン • Kage言語を用いてシェーダーを操作する • 編集→コンパイル→映像出力が可能 • エディタ機能は省いている https://github.com/cyokozai/kagelife
//kage:unit pixels package main var Resolution vec2 func Fragment(dstPos vec4,
srcPos vec2, color vec4) vec4 { uv := dstPos.xy / Resolution return vec4(uv.x, uv.y, 0.0, 1.0) } Kage言語とGLSLの比較 kage #version 300 es precision highp float; uniform vec2 Resolution; out vec4 FragColor; void main() { vec2 uv = gl_FragCoord.xy / Resolution; FragColor = vec4(uv.x, uv.y, 0.0, 1.0); } GLSL
今後実装していく機能 • MIDI 連携 • Ableton などの DAW と連携 •
一部APIをGUI操作可能に • その他、欲しい機能募集
デモ