{
  "id": 10096691,
  "title": "Teaching GPU programming in p5.js: now with compute shaders",
  "url": "https://urgent.news/2026/09/27/teaching-gpu-programming-in-p5-js-now-with-compute-shaders",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-27T00:28:51.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://www.davepagurek.com/blog/p5-compute-shaders/"
  },
  "original_language": "en",
  "account": "Computer graphics education has evolved significantly, but it can still be challenging for students to learn GPU programming. The Graphics Processing Unit (GPU) is now a versatile platform for parallel programming, but there is a steep learning curve due to the vast amount of background knowledge required. Traditional methods involve teaching fundamental concepts such as rendering triangles in Vulkan, which requires thousands of lines of code. To address this issue, professors are adopting scaffolded learning techniques, which provide a template that hides unnecessary details for beginners. Students can then incrementally remove the scaffolding as they progress.\n\nThe p5.js library, which is popular for both artists and computer science educators, aims to make GPU programming more accessible. By offering scaffolding, p5.js allows students with prior p5.js experience to transition into GPU programming with relative ease. The library's shader system, called p5.strands, is designed to provide a gradual learning curve. For instance, creating custom filters in p5.strands is relatively straightforward, involving functions, arrays, and object properties. The library also supports animations by utilizing p5.js time functions.\n\nFor those familiar with traditional shader programming, p5.strands introduces a new concept of uniforms, which can be set using slider values. Shaders can also be applied to individual vertices, enabling more complex visualizations. While p5.strands doesn't replace traditional engineering-oriented systems, it aims to be a productive and intuitive tool for learning GPU programming, even for beginners.",
  "summary": null,
  "key_points": [
    "p5.js library simplifies GPU programming for students",
    "p5.strands shader system offers gradual learning curve",
    "Uniforms in p5.strands set using slider values"
  ],
  "editors_take": "The p5.js library's expansion to include compute shaders eases the transition for students from basic programming to GPU programming, providing a gentler learning curve and increased accessibility.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}