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
cyokozai
June 13, 2026
Technology
110
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
そりゃあ、BoFぞなもし
yusuke427
0
50
若手_学生エンジニアがテックカンファレンスに参加すべき5つの理由.pdf
yusuke427
0
38
10Gb ルータを作るための下準備
yusuke427
0
36
アウトプットの質を高めるために僕はLTをやめた
yusuke427
0
34
年末なのでオンプレ Kubernetes クラスタをアップグレードしよう
yusuke427
0
23
さくらのクラウド AppRun と GitHub Actions でお手軽サーバレス構築
yusuke427
2
140
塩漬けになったVM それ、Kubernetesで動かせますよ
yusuke427
2
250
KubeVirt の Live Migration をやってみる | Try KubeVirt's Live Migration on Nekko Cloud
yusuke427
2
740
学生プライベートクラウドはKubeVirt の夢を見るか?
yusuke427
1
200
Other Decks in Technology
See All in Technology
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
560
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
240
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
120
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
270
強化学習「理論」入門
enakai00
3
3.6k
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
1.6k
ブラウザ研修 2026
recruitengineers
PRO
6
980
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
事業価値と Engineering 2026年度版
recruitengineers
PRO
49
23k
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
250
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9k
サイバー捜査員研修(後半)
nomizone
1
870
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Documentation Writing (for coders)
carmenintech
77
5.4k
Making the Leap to Tech Lead
cromwellryan
135
10k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
430
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
The Limits of Empathy - UXLibs8
cassininazir
1
600
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
560
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
430
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
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操作可能に • その他、欲しい機能募集
デモ