|
| 1 | +--- |
| 2 | +number: 959 |
| 3 | +title: TypeScript on the GPU with TypeGPU creator Iwo Plaza |
| 4 | +date: 1764590400000 |
| 5 | +url: https://traffic.megaphone.fm/FSI5252849311.mp3 |
| 6 | +youtube_url: https://www.youtube.com/watch?v=ZxPaKfRlrOE |
| 7 | +guest: |
| 8 | + name: Iwo Plaza |
| 9 | + github: iwoplaza |
| 10 | + twitter: iwoplaza |
| 11 | + of: TypeGPU |
| 12 | + url: https://docs.swmansion.com/TypeGPU/ |
| 13 | + social: https://soundcloud.com/ivesiris |
| 14 | +--- |
| 15 | + |
| 16 | +Scott and CJ sit down live at JSNation NYC with Iwo Plaza, creator of TypeGPU, to dig into how WebGPU is unlocking a new wave of graphics and compute power on the web. They chat about shader authoring in TypeScript, the future of GPU-powered AI in the browser, and what it takes to build a killer developer-friendly graphics library. |
| 17 | + |
| 18 | +### Show Notes |
| 19 | + |
| 20 | +* **[00:00](#t=00:00)** Welcome to Syntax! |
| 21 | +* **[00:32](#t=00:32)** What is TypeGPU? High-level overview and why it exists |
| 22 | +* **[01:20](#t=01:20)** WebGPU vs WebGL – the new era of GPU access on the web |
| 23 | +* **[01:47](#t=01:47)** Why shader languages are hard + making them accessible |
| 24 | +* **[02:24](#t=02:24)** Iwo’s background in C++, OpenGL, and discovering JS |
| 25 | +* **[03:06](#t=03:06)** Sharing graphics work on the web vs native platforms |
| 26 | +* **[03:29](#t=03:29)** WebGPU frustrations that inspired TypeGPU |
| 27 | +* **[04:17](#t=04:17)** Making GPU–CPU data exchange easier with Zod-like schemas |
| 28 | +* **[05:01](#t=05:01)** Writing shaders in JavaScript + the unified type system |
| 29 | +* **[05:38](#t=05:38)** How the “use_gpu” directive works under the hood |
| 30 | +* **[06:05](#t=06:05)** Building a compiler that turns TypeScript into shader code |
| 31 | +* **[07:00](#t=07:00)** Type inference, primitives, structs, and TypeScript magic |
| 32 | +* **[08:21](#t=08:21)** Leveraging existing tooling via Unplugin + bundler integration |
| 33 | +* **[09:15](#t=09:15)** How TypeGPU extracts ASTs and generates TinyEST metadata |
| 34 | +* **[10:10](#t=10:10)** Runtime shader generation vs build-time macros |
| 35 | +* **[11:07](#t=11:07)** How the AST is traversed + maintaining transparency in output |
| 36 | +* **[11:43](#t=11:43)** Example projects like Jelly Shader and community reception |
| 37 | +* **[12:05](#t=12:05)** Brought to you by [Sentry.io](https://sentry.io/syntax) |
| 38 | +* **[12:30](#t=12:30)** Does TypeGPU replace 3JS? How it fits the existing ecosystem |
| 39 | +* **[13:20](#t=13:20)** Low-level control vs high-level abstractions |
| 40 | +* **[14:04](#t=14:04)** Upcoming Three.js integration – plugging TypeGPU into materials compute shaders |
| 41 | +* **[15:34](#t=15:34)** Making GPU development more approachable |
| 42 | +* **[16:26](#t=16:26)** Docs, examples, and the philosophy behind TypeGPU documentation |
| 43 | +* **[17:03](#t=17:03)** Building features by building examples first |
| 44 | +* **[18:13](#t=18:13)** Using examples as a test suite + how docs shape API design |
| 45 | +* **[19:00](#t=19:00)** Docs as a forcing function for intuitive APIs |
| 46 | +* **[20:21](#t=20:21)** GPU for AI – browser inference and future abstractions |
| 47 | +* **[21:11](#t=21:11)** How AI examples inform new libraries (noise, inference, etc.) |
| 48 | +* **[21:57](#t=21:57)** Keeping the core package small and flexible |
| 49 | +* **[22:44](#t=22:44)** Building “TypeGPU AI”-style extensions without bloating the core |
| 50 | +* **[23:07](#t=23:07)** The cost of AI examples and building everything from scratch |
| 51 | +* **[23:41](#t=23:41)** Standard library design and future of the ecosystem |
| 52 | +* **[24:04](#t=24:04)** Closing thoughts from Iwo – OSS, GPU renaissance, and encouragement |
| 53 | +* **[24:34](#t=24:34)** Sick Picks & Shameless Plugs |
| 54 | + |
| 55 | +### Sick Picks |
| 56 | + |
| 57 | +- Iwo: Perogies |
| 58 | + |
| 59 | +### Shameless Plugs |
| 60 | + |
| 61 | +- Iwo: Syntax Podcast |
| 62 | + |
| 63 | + |
| 64 | +### Hit us up on Socials! |
| 65 | + |
| 66 | +Syntax: [X](https://twitter.com/syntaxfm) [Instagram](https://www.instagram.com/syntax_fm/) [Tiktok](https://www.tiktok.com/@syntaxfm) [LinkedIn](https://www.linkedin.com/company/96077407/admin/feed/posts/) [Threads](https://www.threads.net/@syntax_fm) |
| 67 | + |
| 68 | +Wes: [X](https://twitter.com/wesbos) [Instagram](https://www.instagram.com/wesbos/) [Tiktok](https://www.tiktok.com/@wesbos) [LinkedIn](https://www.linkedin.com/in/wesbos/) [Threads](https://www.threads.net/@wesbos) |
| 69 | + |
| 70 | +Scott: [X](https://twitter.com/stolinski) [Instagram](https://www.instagram.com/stolinski/) [Tiktok](https://www.tiktok.com/@stolinski) [LinkedIn](https://www.linkedin.com/in/stolinski/) [Threads](https://www.threads.net/@stolinski) |
| 71 | + |
| 72 | +Randy: [X](https://twitter.com/randyrektor) [Instagram](https://www.instagram.com/randyrektor/) [YouTube](https://www.youtube.com/@randyrektor) [Threads](https://www.threads.net/@randyrektor) |
0 commit comments