Sign in

Iwo Plaza | TypeGPU

@iwoplaza.dev
139 followers 291 following 59 posts

Lead Developer on typegpu.com // @swmansion.com 👨🏻‍💻🐸💚 github.com/iwoplaza 🧟🕷️⛏️ github.com/mobends 🎶🎹🎶 soundcloud.com/ivesiris

PostsRepliesMedia
Reposted by Iwo Plaza | TypeGPU
WhatTheStack @wts.rocks · 12/08/2026
JavaScript can do almost anything… but operator overloading is still missing. 👀 At What The Stack 2026, @iwoplaza.dev from Software Mansion will talk about the weird, clever, and sometimes cursed ways developers have tried to solve it, including the approach TypeGPU uses today. ⚡🧠
021
Reposted by Iwo Plaza | TypeGPU
Simon Le Marchant @marchantweb.com · 14/07/2026
Introducing Shaders v3 🔥 Our biggest release yet. Built for design engineers who ship magic. Design production-ready WebGPU shader effects on an infinite canvas, powered by a new rendering engine that's up to 25× faster. shaders.com/updates/intr...
shaders.com
Introducing Shaders v3 — Shaders
Everything new in Shaders v3, from the redesigned editor to our lightweight TypeGPU rendering engine.
041
Reposted by Iwo Plaza | TypeGPU
WhatTheStack @wts.rocks · 29/07/2026
🎮 Konrad Reczko is bringing shaders to #WTS. Software Engineer at Software Mansion, graphics programming enthusiast, and the person wondering how every game effect was rendered. TypeScript, TypeGPU, pixels, and the Jelly Slider. 📅 Sept 19 | Skopje 🎟️ wts.sh
011
Iwo Plaza | TypeGPU @iwoplaza.dev · 27/01/2026
I am using Three.js examples to track how well ByeGL is emulating WebGL on top of WebGPU, and today another one started working 🎉 #byegl #webgpu #webgl
031
Iwo Plaza | TypeGPU @iwoplaza.dev · 01/12/2025
Thanks for having me! 💜
080
Iwo Plaza | TypeGPU @iwoplaza.dev · 01/12/2025
Taking it to the next level 👏🤯
030
Reposted by Iwo Plaza | TypeGPU
Eric Lee @sdust.dev · 04/11/2025
Just discovered TypeGPU. It's a TypeScript-first way to write GPU shaders and compute pipelines. You stay in TypeScript, it auto-generates WGSL for WebGPU. 🔥 Perfect for experimenting with rendering, compute, and even AI inference in the browser. docs.swmansion.com/TypeGPU/exam...
052
Reposted by Iwo Plaza | TypeGPU
JSNation @jsnation.gitnation.org · 13/09/2025
WebGPU is exciting — but bridging libraries is tricky. 🎮@iwoplaza.bsky.social introduces TypeGPU: a TypeScript way to write shaders that talk across Three.js, TensorFlow & more. For devs curious about graphics + interop. See you at JSNation US?
jsnation.us
See you at JSNation US?
jsnation.us
041
Iwo Plaza | TypeGPU @iwoplaza.dev · 09/09/2025
The APIs related to uniforms (gl.getActiveUniform, gl.getUniformLocation) are now way more accurate. To test it out, I made a simple multi-light example to diff between ByeGL and WebGL #byegl #webgpu #webgl
040
Iwo Plaza | TypeGPU @iwoplaza.dev · 01/09/2025
I dug up a WebGL game I made 8 years ago, and it's running on WebGPU without any changes thanks to #byegl 🥯🐶🎉 #webgl #webgpu
030
Iwo Plaza | TypeGPU @iwoplaza.dev · 01/09/2025
"byegl" is an initiative to make the WebGL->WebGPU transition seamless for established WebGL apps. In the end, apps that use "byegl" to migrate will be built on top of WebGPU, not on top of potentially limiting abstractions. Follow us along on the journey! #webgl #webgpu #byegl
140
Iwo Plaza | TypeGPU @iwoplaza.dev · 31/08/2025
The surface below is drawn using vanilla WebGL, yet the vertex buffer is generated procedurally with a WebGPU compute shader. Once complete, my solution will allow established WebGL apps to migrate to WebGPU, *incrementally*! I'm shaking from excitement 🫨 #webgpu #webgl #byegl
031
Reposted by Iwo Plaza | TypeGPU
Alex Sweeney @alexjs.dev · 29/08/2025
ajs1998.github.io/double-pendu... I made a simulator to explore the space of double pendulums! It runs in your browser with WebGPU, and it's very fast! I wrote a little about it here: alex.leaflet.pub/3lxizbtwyg22d
ajs1998.github.io
Simulation steps per second
1103
Iwo Plaza | TypeGPU @iwoplaza.dev · 24/07/2025
My talk titled "Your GPU is a JavaScript Runtime*" just landed on YouTube! 👨‍💻 I answer WHY and HOW we compile JS/TS to WGSL, how it improves interop for the whole ecosystem, and the added dimension of customizability it unlocks for WebGPU libraries Video below ⬇️ #webgpu #typegpu #typescript
182
Reposted by Iwo Plaza | TypeGPU
Maxime @maxime.bsky.social · 15/07/2025
floating soft glass made with WebGPU, compute shader, and a fully custom material r3f.maximeheckel.com/webgpu/glass
3353
Iwo Plaza | TypeGPU @iwoplaza.dev · 15/07/2025
Sorry guys, turns out I’ve been making a crab character all along 🦀 It’s really fun to make all of this from scratch in a custom engine, I’m having a blast! #typegpu #webgpu
170
Iwo Plaza | TypeGPU @iwoplaza.dev · 13/07/2025
Remember to always test on device… I thought it was going to run easy 60fps, but only quarter-resolution runs smoothly 🐢 I guess I gotta embrace the pixelated look! #typegpu #webgpu
010
Reposted by Iwo Plaza | TypeGPU
Software Mansion @swmansion.com · 11/07/2025
TypeGPU 0.6.0 heading your way! 🚀 🔁 Shader logic re-use – share logic across shaders without resorting to string concat 🧩 Dependency injection – parametrize shaders at compile time with slots 🔍 Auto-generated arg + return types in typed functions – inferred from your schema … And more! 👇
171
Iwo Plaza | TypeGPU @iwoplaza.dev · 30/06/2025
SDF ray marching written in TypeScript, compiled into WebGPU Shading Language! I think we struck a good balance of flexibility & expressiveness, while vastly improving the DX of working with WebGPU (from the perspective of a TypeScript app) GPU & CPU end-to-end type safety, tRPC/oRPC style 🚀
040
Iwo Plaza | TypeGPU @iwoplaza.dev · 29/06/2025
I hate to say it but... LLMs are decent at writing TypeGPU shaders. @thdxr.com's opencode wrote a few SDF functions, then created a simple ray marched scene. Mind you, this is NOT a Three.js scene! It's a custom fragment shader that sends rays into an "imaginary" space, written fully in TypeScript
120
Iwo Plaza | TypeGPU @iwoplaza.dev · 23/06/2025
Definitely a XorDev classic 👏👏 Reimplementing it in TypeScript went smoother than last time. Love playing with the parameters on this one 🫨 Code & Preview (WebGPU required): docs.swmansion.com/TypeGPU/exam... #webgpu #typegpu #shaders
1132
Reposted by Iwo Plaza | TypeGPU
Software Mansion @swmansion.com · 26/05/2025
TypeGPU makes defining and executing your own compute pipelines easier than ever. 🎉 It's designed to be foundational and give developers full control, while improving DX via type safety and modularity. Watch the video to see what we’ve been up to. 🔥 www.youtube.com/watch?v=QrHZ...
youtube.com
Simplifying Compute Shaders with TypeGPU: GPU Worklets & More
YouTube video by Software Mansion
171
Iwo Plaza | TypeGPU @iwoplaza.dev · 18/06/2025
I HAD to know how this works 😱 I rewrote it in TypeScript and unminimized parts of the code for readability. TypeGPU takes that code and compiles it into WGSL (WebGPU Shading Language), so it can be executed on the GPU 🚀 Code & Preview: docs.swmansion.com/TypeGPU/exam... #WebGPU
2273
Iwo Plaza | TypeGPU @iwoplaza.dev · 17/06/2025
WebGPU is an amazing piece of technology, allowing for truly cross-platform graphics and GPGPU programming. It's being used by frameworks like Three.js and Tensorflow.js to accelerate their internals ⚡ However, when we try to connect libraries together, we soon hit a limit... 🧵 THREAD 🧵 (1/n)
151
Reposted by Iwo Plaza | TypeGPU
sai @texoport.in · 17/06/2025
a smol side quest never hurt anyone
code:
const myVShader = VertexShader(function* () {
  const position = yield* glsl.attribute("position", glsl.types.vec3())
  const mvpMatrix = yield* glsl.uniform("mvpMatrix", glsl.types.mat4())

  const worldPos = yield* glsl.let(
    "worldPos",
    glsl.types.vec4(),
    glsl.mul(mvpMatrix, glsl.vec4(position, position, position, 1.0))
  )

  const scaledPos = yield* glsl.let(
    "scaledPos",
    glsl.types.vec4(),
    glsl.mul(worldPos, glsl.float(2.0))
  )

  yield* glsl.assign("gl_Position", scaledPos)
}).compile()

console.log(myVShader)


--- output ---

#version 100

attribute vec3 position;
uniform mat4 mvpMatrix;

void main() {
  vec4 worldPos = (mvpMatrix * vec4(position, position, position, 1.0));
  vec4 scaledPos = (worldPos * 2.0);
  gl_Position = scaledPos;
}
171
Iwo Plaza | TypeGPU @iwoplaza.dev · 17/06/2025
I think the god rays make my fake caustics shader complete! ✨ The shader is written in TypeScript, then compiled to WGSL (WebGPU Shading Language) using TypeGPU! 🚀 #webgpu #typegpu #shader
130
Reposted by Iwo Plaza | TypeGPU
Andrew Aquino @aqandrew.com · 13/06/2025
part 2 (textures) coming eventually. seeing @iwoplaza.bsky.social’s WebGPU talk inspired me to pick this project back up!
011
Reposted by Iwo Plaza | TypeGPU
Andrew Aquino @aqandrew.com · 13/06/2025
my favorite blog post, which I haven’t shared here yet. for math/graphics/JS/DnD nerds Creating a 10-Sided Die with React, Part 1 aqandrew.com/blog/10-side...
aqandrew.com
Creating a 10-Sided Die with React, Part 1 | Andrew Aquino
You can create 3D graphics with React! This is how I built a custom three.js geometry to use in react-three-fiber.
121
Reposted by Iwo Plaza | TypeGPU
Software Mansion @swmansion.com · 13/05/2025
At SWM, we thought: what if we took the idea behind tRPC and React Server Components – sharing types across environments – and applied it to GPU programming? 🧠 That’s how TypeGPU was born. It’s a TypeScript library for WebGPU API that brings type safety to the CPU–GPU boundary. 🚀 bit.ly/43qVph7
bit.ly
The quest for type-safe WebGPU shaders
At Software Mansion, we thought: what if we took the idea behind tRPC and React Server Components – sharing types across environments – and applied it to GPU programming? That’s how TypeGPU was born. It’s a TypeScript library for WebGPU API that brings type safety to the CPU–GPU boundary. In this video, we explain how it works and why we built it. Learn more about TypeGPU 👉 https://docs.swmansion.com/TypeGPU/ #TypeGPU #WebGPU #TypeScript #GPUProgramming #SoftwareMansion
1192
Reposted by Iwo Plaza | TypeGPU
Software Mansion @swmansion.com · 22/04/2025
Say hello to typegpu-confetti: buttery smooth, fully customizable, and rendered 100% on the GPU via TypeGPU + react-native-wgpu. 🎉
3548
Reposted by Iwo Plaza | TypeGPU
Software Mansion @swmansion.com · 12/05/2025
Building a custom React renderer lets you extend React's capabilities to different platforms. 🚀 If you want to learn how to map your own API to React components using react-reconciler, check our article for a deep dive into the process.👇 blog.swmansion.com/how-to-build...
blog.swmansion.com
How to Build a Custom React Renderer?
Explore essentials of building your own React renderer, including key steps, implementation details, and tips for integrating with your…
0213
Reposted by Iwo Plaza | TypeGPU
Software Mansion @swmansion.com · 10/04/2025
WebGPU is great, but working with untyped binary data can be a pain. That’s why we built TypeGPU – a TypeScript library that enhances the WebGPU API, bringing type safety to apps that span the CPU–GPU boundary. 🧠⚙️ 🔗 Check the article to see how TypeGPU works and what’s coming next: bit.ly/4j4pgld
blog.swmansion.com
Type Safety in WebGPU Applications: The TypeGPU Approach
Type-safe WebGPU shaders are now possible, and we’re excited to share our insights & patterns on how you can utilize them in your projects!
0112
Iwo Plaza | TypeGPU @iwoplaza.dev · 13/02/2025
My TypeGPU & Koota ECS game project works on React Native! 🎮 (cc @pmnd.rs) It's been a great test bed for JavaScript shaders, as well as for discovering any edge-cases we don't yet support. #webgpu #typegpu #gamedev #javascript
0163
Iwo Plaza | TypeGPU @iwoplaza.dev · 12/01/2025
I was able to very quickly and painlessly add mobile controls thanks to @verekia.com’s “Mana Potion” library 🕹️ #gamedev #javascript #webgpu #typegpu
0170
Iwo Plaza | TypeGPU @iwoplaza.dev · 12/01/2025
🪐 t r a n s c e n d 🪐 I am in the middle of implementing instanced particles for my game engine, and this is the result so far 😵‍💫 #gamedev #webgpu #typegpu #javascript
0111
Iwo Plaza | TypeGPU @iwoplaza.dev · 03/01/2025
⚔️🛡️ #typegpu #webgpu #javascript
020
Iwo Plaza | TypeGPU @iwoplaza.dev · 02/01/2025
Making a web game about FALLING! I decided to hand-roll a custom engine and renderer on top of #webgpu as a learning exercise 👨‍🎓 📚STACK📚 - TypeGPU: deep #typescript and #webgpu integration (& experimental JS shaders 🧪) - Koota (by @pmnd.rs): a fresh ECS framework, very fun so far! #gamedev
1100
Iwo Plaza | TypeGPU @iwoplaza.dev · 02/01/2025
TypeGPU's JavaScript shaders (🧪 experimental 🧪) are like @threejs.org's TSL, except for: - 🔗 End-to-end type inference thanks to Zod-like schemas (cc @colinhacks.com) - 🌊 Regular `if` and `for` statements work just fine! - ⚡️ Big chunk of work offloaded to a Vite plugin. #webgpu
// Zod-like schema for I/O with the GPU
const Material = struct({
  albedo: vec3f,
});

// Allows `material` to point to different memory on each draw-call.
const layout = tgpu.bindGroupLayout({
  material: { uniform: Material },
});

// A typed reference to the eventually bound resource.
const { material } = layout.bound;
//      ^? TgpuBufferUniform<WgslStruct{ albedo: Vec3f }>

// Constant at shader creation time, precomputed.
const sunDir = normalize(vec3f(-0.5, 2, -0.5));

// 🚀: `computeColor` is a function that can run on the GPU!
const computeColor = tgpu.fn([vec3f], vec4f).does((normal) => {
  const diffuse = vec3f(1, 0.9, 0.7);
  const ambient = vec3f(0.1, 0.15, 0.2);
  const att = max(0, dot(normalize(normal), sunDir));
  
  // 🎉: The type of `albedo` is infered, and properly type checked.
  const albedo = material.value.albedo; // => v3f

  const lightColor = add(ambient, mul(att, diffuse));
  const surfaceColor = mul(lightColor, albedo);
  return vec4f(surfaceColor.xyz, 1);
});
250
Iwo Plaza | TypeGPU @iwoplaza.dev · 26/12/2024
Who knew limited floating-point precision could look so... painterly! 🎨 The pseudo-random generator is operating on a range of floating-point values high enough to induce visible artifacts. #webgpu #raytracing #shader #javascript
A sample 3d scene with three spheres, each with different material properties.
140
Iwo Plaza | TypeGPU @iwoplaza.dev · 19/11/2024
A quick graphic of how TypeGPU alleviates the need to worry about manual byte packing, data misalignments and runtime errors when working with #WebGPU in JS/TS 🩹💜 Check out our docs to get started! docs.swmansion.com/TypeGPU/why-...
010
Reposted by Iwo Plaza | TypeGPU
Justin Oaksford @justinoaksford.bsky.social · 18/11/2024
getting up to shenanigans
41326
Reposted by Iwo Plaza | TypeGPU
Felix Martinez @felixmartinez.dev · 12/11/2024
Finally got the SDF font parser integrated on my WebGPU framework! Next step, glyph bounds and instanced drawing. #webGPU
1173
Iwo Plaza | TypeGPU @iwoplaza.dev · 16/11/2024
Hello Bluesky! 👋🦋 I am a software engineer with a side of drawing and music-making. Developing the TypeGPU library 👨‍💻 Excited to connect with other devs and artists on this platform 💜
020
Reposted by Iwo Plaza | TypeGPU
Software Mansion @swmansion.com · 13/11/2024
Writing custom GPU solutions shouldn’t downgrade your DX! Take a look at how flexible & expressive TypeGPU can be by running a custom AI model on your device's GPU—in real time! 🚀 Check it out here: docs.swmansion.com/TypeGPU/exam...
171