# shaders

Shaders are programmable operations executed in graphics and compute pipeline stages, including vertex, fragment, and compute stages.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Optimizing CPU-side Rendering Code

DevFeed: [Optimizing CPU-side Rendering Code](<https://devfeed.tech/articles/optimizing-cpu-side-rendering-code-26783.md>)

Original publisher: [Read original article](<https://godotengine.org/article/rendering-cpu-optimizations/>)

Author: Clay John

Published: 2026-09-15T17:00:00Z

Content type: tutorial

Language: en

Sources: [Godot Engine Official](<https://devfeed.tech/sources/godot-engine-official.md>)

Topics: [Godot](<https://devfeed.tech/topics/godot.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>)

Tags: [batching](<https://devfeed.tech/tags/batching.md>), [bug](<https://devfeed.tech/tags/bug.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-optimization](<https://devfeed.tech/tags/performance-optimization.md>), [progress-report](<https://devfeed.tech/tags/progress-report.md>), [shaders](<https://devfeed.tech/tags/shaders.md>)

### AI overview

This article explains how Godot optimizes CPU-side rendering code. It describes balancing CPU and GPU workloads, identifying performance bottlenecks, investigating solutions, measuring results, and repeating the process.

### Source excerpt

Optimizing CPU code is a lot of fun. Here's how we do it

## Figma Is Turning Designers Into Plugin Makers

DevFeed: [Figma Is Turning Designers Into Plugin Makers](<https://devfeed.tech/articles/figma-is-turning-designers-into-plugin-makers-17416.md>)

Original publisher: [Read original article](<https://webdesignerdepot.com/figmas-new-idea-is-wild-just-ask-ai-to-build-the-plugin-you-need/>)

Author: Alex Harper

Published: 2026-09-14T15:30:00Z

Content type: article

Language: en

Sources: [Web Designer Depot](<https://devfeed.tech/sources/web-designer-depot.md>)

Topics: [Figma](<https://devfeed.tech/topics/figma.md>), [Figma plugin](<https://devfeed.tech/topics/figma-plugin.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [shader programming](<https://devfeed.tech/topics/shader-programming.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-design-tools](<https://devfeed.tech/tags/ai-design-tools.md>), [ai-for-designers](<https://devfeed.tech/tags/ai-for-designers.md>), [ai-plugins](<https://devfeed.tech/tags/ai-plugins.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [creative-software](<https://devfeed.tech/tags/creative-software.md>), [design-automation](<https://devfeed.tech/tags/design-automation.md>), [design-tools](<https://devfeed.tech/tags/design-tools.md>), [figma](<https://devfeed.tech/tags/figma.md>), [figma-agent](<https://devfeed.tech/tags/figma-agent.md>), [figma-ai](<https://devfeed.tech/tags/figma-ai.md>), [figma-community](<https://devfeed.tech/tags/figma-community.md>), [figma-plugin](<https://devfeed.tech/tags/figma-plugin.md>), [figma-plugins](<https://devfeed.tech/tags/figma-plugins.md>), [figma-shaders](<https://devfeed.tech/tags/figma-shaders.md>), [future-of-design](<https://devfeed.tech/tags/future-of-design.md>), [generate](<https://devfeed.tech/tags/generate.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [generative-plugins](<https://devfeed.tech/tags/generative-plugins.md>), [no-code-tools](<https://devfeed.tech/tags/no-code-tools.md>), [procedural](<https://devfeed.tech/tags/procedural.md>), [shader-programming](<https://devfeed.tech/tags/shader-programming.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [ui-design](<https://devfeed.tech/tags/ui-design.md>), [ux-design](<https://devfeed.tech/tags/ux-design.md>), [web-design](<https://devfeed.tech/tags/web-design.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

Figma is enabling designers to describe and generate coded plugins with AI instead of searching for existing tools. The article explains that these plugins can solve highly specific workflow problems, be published to the Figma Community or shared privately, and include features such as bulk restyling, type-ramp generation, layer renaming, and prototype-flow checking. Figma also offers AI-generated shaders for procedural and interactive visual effects, with code inspection available for shaders and self-created generative plugins.

### Source excerpt

Figma is turning a wild idea into reality: instead of searching for the perfect plugin, you can just ask AI to build it. If this catches on, designers may stop choosing the tools in their software--and start inventing them on demand.

## MiniDXNN v0.4.0: Interactive neural texture compression on DirectX 12

DevFeed: [MiniDXNN v0.4.0: Interactive neural texture compression on DirectX 12](<https://devfeed.tech/articles/minidxnn-v0-4-0-interactive-neural-texture-compression-on-directx-12-15043.md>)

Original publisher: [Read original article](<https://gpuopen.com/learn/minidxnn-v040-interactive-neural-texture-compression/>)

Author: Takahiro Harada; Sho Ikeda

Published: 2026-08-13T14:30:00Z

Content type: release

Language: en

Sources: [AMD GPUOpen](<https://devfeed.tech/sources/amd-gpuopen.md>)

Topics: [Compression](<https://devfeed.tech/topics/compression.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [mlp](<https://devfeed.tech/topics/mlp.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [agility-sdk](<https://devfeed.tech/tags/agility-sdk.md>), [announcement](<https://devfeed.tech/tags/announcement.md>), [compression](<https://devfeed.tech/tags/compression.md>), [directx](<https://devfeed.tech/tags/directx.md>), [driver](<https://devfeed.tech/tags/driver.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [gpu-open-sdks](<https://devfeed.tech/tags/gpu-open-sdks.md>), [gpu-open-tools](<https://devfeed.tech/tags/gpu-open-tools.md>), [gpuopen-sdks](<https://devfeed.tech/tags/gpuopen-sdks.md>), [gpuopen-tools](<https://devfeed.tech/tags/gpuopen-tools.md>), [graphics-apis](<https://devfeed.tech/tags/graphics-apis.md>), [gui](<https://devfeed.tech/tags/gui.md>), [inference](<https://devfeed.tech/tags/inference.md>), [maths](<https://devfeed.tech/tags/maths.md>), [memory](<https://devfeed.tech/tags/memory.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [microsoft-agility-sdk](<https://devfeed.tech/tags/microsoft-agility-sdk.md>), [microsoft-directx](<https://devfeed.tech/tags/microsoft-directx.md>), [ml](<https://devfeed.tech/tags/ml.md>), [mlp](<https://devfeed.tech/tags/mlp.md>), [neural](<https://devfeed.tech/tags/neural.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [product-release](<https://devfeed.tech/tags/product-release.md>), [quick-start](<https://devfeed.tech/tags/quick-start.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [technical-article](<https://devfeed.tech/tags/technical-article.md>), [technical-articles](<https://devfeed.tech/tags/technical-articles.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

MiniDXNN v0.4.0 is an open-source library for GPU-accelerated MLP inference and training on DirectX 12. The release adds D3D12 Linear Algebra support, input encoding for neural texture compression, and a real-time GUI application for training and visualizing texture representations.

### Source excerpt

MiniDXNN v0.4.0 introduces D3D12 Linear Algebra (SM 6.10) support, input encodings and neural texture compression, plus a real-time GUI app that trains and visualizes GPU-accelerated MLPs on DirectX® 12.

## Digital tools, human expression: The visual identity behind Config 2026

DevFeed: [Digital tools, human expression: The visual identity behind Config 2026](<https://devfeed.tech/articles/digital-tools-human-expression-the-visual-identity-behind-config-2026-10155.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/the-visual-identity-behind-config-2026/>)

Author: Matt Alagiah

Published: 2026-07-27T16:30:00Z

Content type: article

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Figma](<https://devfeed.tech/topics/figma.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-tools](<https://devfeed.tech/tags/ai-tools.md>), [conference](<https://devfeed.tech/tags/conference.md>), [design](<https://devfeed.tech/tags/design.md>), [figma](<https://devfeed.tech/tags/figma.md>), [images](<https://devfeed.tech/tags/images.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

Figma's Brand Studio explains the visual identity for Config 2026, combining expressive glyphs, prompted textures, generative tools, shaders, and Figma Make to balance digital experimentation with human craft and imperfection.

### Source excerpt

Here's how Figma's Brand Studio designed a conference that captured the very human ways we remix and reinvent when working with AI tools.

## 2026 Real-Time Shading Ecosystem Survey Results

DevFeed: [2026 Real-Time Shading Ecosystem Survey Results](<https://devfeed.tech/articles/developers-said-2026-shader-ecosystem-survey-results-15120.md>)

Original publisher: [Read original article](<https://www.khronos.org/blog/shader-ecosystem-survey-results-2026>)

Author: jphilips (jeff@khronosgroup.org)

Published: 2026-07-21T13:00:00Z

Content type: release

Language: en

Sources: [Blogs Khronos Blog](<https://devfeed.tech/sources/blogs-khronos-blog.md>)

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [glsl](<https://devfeed.tech/topics/glsl.md>), [GPU](<https://devfeed.tech/topics/gpu.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [blog](<https://devfeed.tech/tags/blog.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [developers](<https://devfeed.tech/tags/developers.md>), [glsl](<https://devfeed.tech/tags/glsl.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [porting](<https://devfeed.tech/tags/porting.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [report](<https://devfeed.tech/tags/report.md>), [survey](<https://devfeed.tech/tags/survey.md>)

### AI overview

Khronos reports results from a 2026 survey of more than 400 shader developers, graphics programmers, rendering engineers, and tools creators. Shader debugging and profiling were the leading reported pain point, while cross-platform shader porting also affected a majority of respondents.

### Source excerpt

Khronos releases the 2026 Real-Time Shading Ecosystem Survey Report, a summary of insights from over 400 shader developers, graphics programmers, rendering engineers, and tools creators. Conducted between June 16 and July 10, 2026, the survey captures a clear picture of how the real-time shading community works today -- and where standardization efforts can deliver the greatest impact.

## Config 2026: New materials, new tools and a more expressive canvas

DevFeed: [Config 2026: New materials, new tools and a more expressive canvas](<https://devfeed.tech/articles/config-2026-new-materials-new-tools-and-a-more-expressive-canvas-9585.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/config-2026-recap/>)

Author: Dylan Field

Published: 2026-06-24T15:00:00Z

Content type: release

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Figma](<https://devfeed.tech/topics/figma.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [Code](<https://devfeed.tech/topics/code.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [generative plugins](<https://devfeed.tech/topics/generative-plugins.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [code](<https://devfeed.tech/tags/code.md>), [figma](<https://devfeed.tech/tags/figma.md>), [generative-plugins](<https://devfeed.tech/tags/generative-plugins.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

Figma's Config 2026 announcements introduce new materials and canvas tools, including code layers, Figma Motion, shaders, generative plugins, and Weave tools. The article explains how code layers can become interactive, be duplicated for exploration, and be iterated on collaboratively alongside design layers.

### Source excerpt

Push past what you thought was possible with code layers, Figma Motion, shaders, generative plugins and Weave tools, all on the canvas.

## What's New in WebGPU (Chrome 149-150)

DevFeed: [What's New in WebGPU (Chrome 149-150)](<https://devfeed.tech/articles/what-s-new-in-webgpu-chrome-149-150-4141.md>)

Original publisher: [Read original article](<https://developer.chrome.com/blog/new-in-webgpu-149-150?hl=en>)

Author: François Beaufort GitHub

Published: 2026-06-17T07:00:00Z

Content type: article

Language: en

Sources: [developer.chrome.com: Blog](<https://devfeed.tech/sources/developer-chrome-com-blog.md>)

Topics: [webgpu](<https://devfeed.tech/topics/webgpu.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>)

Tags: [chrome](<https://devfeed.tech/tags/chrome.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [validation](<https://devfeed.tech/tags/validation.md>), [webgpu](<https://devfeed.tech/tags/webgpu.md>)

### AI overview

WebGPU updates in Chrome 149-150 introduce immediates for passing small, frequently changing values directly to shaders and refine validation rules for transient render attachments.

### Source excerpt

Immediates and stricter validation for transient attachments.

## 3D Graphics Without Writing Shaders: The Portable GPU API

DevFeed: [3D Graphics Without Writing Shaders: The Portable GPU API](<https://devfeed.tech/articles/3d-graphics-without-writing-shaders-the-portable-gpu-api-19440.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/portable-3d-graphics-api/>)

Author: Shai Almog

Published: 2026-06-13T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [3D graphics](<https://devfeed.tech/topics/3d-graphics.md>), [API](<https://devfeed.tech/topics/api.md>), [Java](<https://devfeed.tech/topics/java.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [OpenGL](<https://devfeed.tech/topics/opengl.md>), [WebGL](<https://devfeed.tech/topics/webgl.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [3d-graphics](<https://devfeed.tech/tags/3d-graphics.md>), [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [java](<https://devfeed.tech/tags/java.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [software](<https://devfeed.tech/tags/software.md>), [webgl](<https://devfeed.tech/tags/webgl.md>)

### AI overview

The article describes Codename One's com.codename1.gpu API, which lets applications render portable 3D graphics from one Java codebase across Metal, OpenGL ES, WebGL, Direct3D 11, and a software rasterizer. Developers describe materials while platform-specific generators produce the shader code.

### Source excerpt

The new com.codename1.gpu API renders the same Java code through Metal, OpenGL ES, WebGL, Direct3D 11, and a software rasterizer. You describe materials and the engine generates the shaders for each platform.

## New AMD Radeon Developer Tool Suite update brings shader source code, Extended PIX Markers, and command-line capture

DevFeed: [New AMD Radeon Developer Tool Suite update brings shader source code, Extended PIX Markers, and command-line capture](<https://devfeed.tech/articles/new-amd-radeon-developer-tool-suite-update-brings-shader-source-code-extended-pix-markers-and-command-line-capture-15046.md>)

Original publisher: [Read original article](<https://gpuopen.com/learn/radeon-developer-tool-suite-shader-source-code/>)

Author: Chris Hesik

Published: 2026-06-11T16:26:00Z

Content type: release

Language: en

Sources: [AMD GPUOpen](<https://devfeed.tech/sources/amd-gpuopen.md>)

Topics: [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [Ray Tracing](<https://devfeed.tech/topics/ray-tracing.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Software](<https://devfeed.tech/topics/software.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [agility-sdk](<https://devfeed.tech/tags/agility-sdk.md>), [amd](<https://devfeed.tech/tags/amd.md>), [announcement](<https://devfeed.tech/tags/announcement.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [developer](<https://devfeed.tech/tags/developer.md>), [directx](<https://devfeed.tech/tags/directx.md>), [driver](<https://devfeed.tech/tags/driver.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [gpu-open-tools](<https://devfeed.tech/tags/gpu-open-tools.md>), [gpuopen-other-amd](<https://devfeed.tech/tags/gpuopen-other-amd.md>), [gpuopen-tools](<https://devfeed.tech/tags/gpuopen-tools.md>), [graphics-apis](<https://devfeed.tech/tags/graphics-apis.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [memory](<https://devfeed.tech/tags/memory.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [microsoft-agility-sdk](<https://devfeed.tech/tags/microsoft-agility-sdk.md>), [microsoft-directx](<https://devfeed.tech/tags/microsoft-directx.md>), [news](<https://devfeed.tech/tags/news.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [other-amd](<https://devfeed.tech/tags/other-amd.md>), [performance](<https://devfeed.tech/tags/performance.md>), [product-blogs](<https://devfeed.tech/tags/product-blogs.md>), [product-release](<https://devfeed.tech/tags/product-release.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [radeon-developer-panel](<https://devfeed.tech/tags/radeon-developer-panel.md>), [radeon-developer-tool-suite](<https://devfeed.tech/tags/radeon-developer-tool-suite.md>), [radeon-gpu-analyzer](<https://devfeed.tech/tags/radeon-gpu-analyzer.md>), [radeon-gpu-detective](<https://devfeed.tech/tags/radeon-gpu-detective.md>), [radeon-gpu-profiler](<https://devfeed.tech/tags/radeon-gpu-profiler.md>), [radeon-memory-visualizer](<https://devfeed.tech/tags/radeon-memory-visualizer.md>), [radeon-raytracing-analyzer](<https://devfeed.tech/tags/radeon-raytracing-analyzer.md>), [ray-tracing](<https://devfeed.tech/tags/ray-tracing.md>), [raytracing](<https://devfeed.tech/tags/raytracing.md>), [rdp](<https://devfeed.tech/tags/rdp.md>), [rdts](<https://devfeed.tech/tags/rdts.md>), [release](<https://devfeed.tech/tags/release.md>), [rga](<https://devfeed.tech/tags/rga.md>), [rgd](<https://devfeed.tech/tags/rgd.md>), [rgp](<https://devfeed.tech/tags/rgp.md>), [rmv](<https://devfeed.tech/tags/rmv.md>), [rra](<https://devfeed.tech/tags/rra.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [source](<https://devfeed.tech/tags/source.md>), [technical-articles](<https://devfeed.tech/tags/technical-articles.md>), [tool](<https://devfeed.tech/tags/tool.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

AMD's Radeon Developer Tool Suite update adds shader source code viewing, instruction-level divergence metrics, and Extended PIX Marker support in RGP 2.7. It also expands hardware compatibility and updates other tools in the suite.

### Source excerpt

The new AMD Radeon Developer Tool Suite release delivers RGP 2.7 with shader source code viewing, instruction-level divergence metrics, and Extended PIX Marker support, expanded hardware compatibility, and updates across RGD, RRA, RMV, RGA, and RDP.

## Video Encoding and Decoding with Vulkan Compute Shaders in FFmpeg

DevFeed: [Video Encoding and Decoding with Vulkan Compute Shaders in FFmpeg](<https://devfeed.tech/articles/video-encoding-and-decoding-with-vulkan-compute-shaders-in-ffmpeg-15121.md>)

Original publisher: [Read original article](<https://www.khronos.org/blog/video-encoding-and-decoding-with-vulkan-compute-shaders-in-ffmpeg>)

Author: jphilips (jeff@khronosgroup.org)

Published: 2026-03-16T17:04:00Z

Content type: article

Language: en

Sources: [Blogs Khronos Blog](<https://devfeed.tech/sources/blogs-khronos-blog.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [blog-vulkan-vulkan-vide](<https://devfeed.tech/tags/blog-vulkan-vulkan-vide.md>), [compression](<https://devfeed.tech/tags/compression.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [performance](<https://devfeed.tech/tags/performance.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [video](<https://devfeed.tech/tags/video.md>), [vulkan](<https://devfeed.tech/tags/vulkan.md>)

### AI overview

This article explains how FFmpeg uses Vulkan Compute shaders to accelerate encoding and decoding of professional-grade video on consumer GPUs. It describes the parallel and serial stages of codec pipelines and how this approach complements Vulkan Video's fixed-function support.

### Source excerpt

In this blog we explore how FFmpeg uses Vulkan Compute to seamlessly accelerate encoding and decoding of even professional-grade video on consumer GPUs -- unlocking GPU compute parallelism at scale, without specialized hardware. This approach complements Vulkan Video's fixed-function codec support, extending acceleration to formats and workflows it doesn't cover.

## Finger Shadows in Compose

DevFeed: [Finger Shadows in Compose](<https://devfeed.tech/articles/finger-shadows-in-compose-25611.md>)

Original publisher: [Read original article](<https://www.romainguy.dev/posts/2025/finger-shadows/>)

Author: Romain Guy

Published: 2025-11-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Posts on Romain Guy](<https://devfeed.tech/sources/posts-on-romain-guy.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [developer](<https://devfeed.tech/tags/developer.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [programming](<https://devfeed.tech/tags/programming.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A tutorial on using Android 13's RuntimeShader API in Jetpack Compose to simulate soft shadows cast by a user's finger, stylus, or pointing device. It models the finger as an oriented capsule in 3D space and computes light visibility using cone and spherical-cap intersections.

### Source excerpt

I recently realized that I have never discussed graphics programming on this blog, and decided it was time to correct this. A few years ago, Android 13 introduced the RuntimeShader API that allows you to write custom GPU shaders and apply them to UI elements. In this blog post I will show you how this API can be used to simulate shadows projected by the user's finger (or stylus/pointing device) onto your UI.

## Fast calculation of the distance to cubic Bezier curves on the GPU

DevFeed: [Fast calculation of the distance to cubic Bezier curves on the GPU](<https://devfeed.tech/articles/fast-calculation-of-the-distance-to-cubic-bezier-curves-on-the-gpu-26120.md>)

Original publisher: [Read original article](<http://blog.pkh.me/p/46-fast-calculation-of-the-distance-to-cubic-bezier-curves-on-the-gpu.html>)

Published: 2025-10-18T09:21:56Z

Content type: article

Language: en

Sources: [The Last Static Blog RSS](<https://devfeed.tech/sources/the-last-static-blog-rss.md>)

Topics: [GPU](<https://devfeed.tech/topics/gpu.md>), [glsl](<https://devfeed.tech/topics/glsl.md>), [WebGL](<https://devfeed.tech/topics/webgl.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [pixel](<https://devfeed.tech/topics/pixel.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [glsl](<https://devfeed.tech/tags/glsl.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [math](<https://devfeed.tech/tags/math.md>), [maths](<https://devfeed.tech/tags/maths.md>), [pixel](<https://devfeed.tech/tags/pixel.md>), [prog](<https://devfeed.tech/tags/prog.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [source](<https://devfeed.tech/tags/source.md>), [visualization](<https://devfeed.tech/tags/visualization.md>), [webgl](<https://devfeed.tech/tags/webgl.md>), [webgl-demo](<https://devfeed.tech/tags/webgl-demo.md>)

### AI overview

This article explains how to calculate the distance from a point to a cubic Bézier curve on the GPU. It derives the distance function and its derivative, reducing the problem to solving a fifth-degree polynomial, and demonstrates the method with self-contained GLSL fragment shaders and WebGL visualizations.

### Source excerpt

Bézier curves are a core building block of text and 2D shapes rendering. There are several approaches to rendering them, but one especially challenging problem, both mathematically and technically, is computing the distance to a Bézier curve. For quadratic curves (one control point), this is fairly accessible, but for cubic (two control points) we're going to see why it is so hard. A glyph from the Virgil font, composed of multiple Bézier curves Having this distance field opens up many rendering possibilities. It's hard, but it's possible; here is a live proof: Distance to a cubic Bézier curve In this visualization, I'm borrowing your device resources to compute the distance to the curve for every single pixel. The yellow points are the control points of the curve (in white) and the blue zone is a representation of the distance field. Note All the demos and code in this article are self-contained GLSL fragment shaders. Most of the code can be found in the article, but feel free to inspect the source code of any of these WebGL demo for the complete code. They can be run verbatim using ShaderWorkshop. The basic maths In a previous article, we explained that a Bézier curve can be expressed as a polynomial. In our case, a cubic polynomial: B_3(t) = \textbf{a}t^3 + \textbf{b}t^2 + \textbf{c}t + \textbf{d} Where a, b, c and d are the vector coefficients derived from the start (P_0), end (P_3), and control points (P_1, P_2) using the following formulas (you can refer to the previous article for details): \begin{aligned} \textbf{a} &= -P_0 + 3(P_1-P_2) + P_3 \\ \textbf{b} &= 3P_0 - 6P_1 + 3P_2 \\ \textbf{c} &= -3P_0 + 3P_1 \\ \textbf{d} &= P_0 \end{aligned} For a given point p in 2D space, the distance to that Bézier curve can be expressed as a length between our curve and p: \begin{aligned} d(t) &= ||B_3(t) - \textbf{p}|| \\ &= ||\textbf{a}t^3 + \textbf{b}t^2 + \textbf{c}t + \textbf{d} - \textbf{p}|| \end{aligned} Our goal is to find the t value where d(t) is the smallest.

## From Liège to Laravel: The Artisan of the Day Is Adrien Leloup.

DevFeed: [From Liège to Laravel: The Artisan of the Day Is Adrien Leloup.](<https://devfeed.tech/articles/from-liege-to-laravel-the-artisan-of-the-day-is-adrien-leloup-3703.md>)

Original publisher: [Read original article](<https://laravel.com/blog/from-liege-to-laravel-the-artisan-of-the-day-is-adrien-leloup>)

Author: Ana Tavares

Published: 2025-08-23T12:16:30Z

Content type: article

Language: en

Sources: [Laravel Blog](<https://devfeed.tech/sources/laravel-blog.md>)

Topics: [Laravel](<https://devfeed.tech/topics/laravel.md>), [PHP](<https://devfeed.tech/topics/php.md>), [Development](<https://devfeed.tech/topics/development.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [Vite](<https://devfeed.tech/topics/vite.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Bluesky](<https://devfeed.tech/topics/bluesky-social.md>), [Livewire](<https://devfeed.tech/topics/livewire.md>)

Tags: [community](<https://devfeed.tech/tags/community.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [dev](<https://devfeed.tech/tags/dev.md>), [dev-tools](<https://devfeed.tech/tags/dev-tools.md>), [laravel](<https://devfeed.tech/tags/laravel.md>), [launch](<https://devfeed.tech/tags/launch.md>), [macos](<https://devfeed.tech/tags/macos.md>), [php](<https://devfeed.tech/tags/php.md>), [vite](<https://devfeed.tech/tags/vite.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This developer profile features Adrien Leloup, a full-stack developer in Liège who has built more than 100 Laravel-based web projects at Whitecube. It also covers his PHPxBrussels community work, Hiker.dev tool, Laravel Ignition plugin, and experiments with shaders, Vite, Livewire, middleware, and macOS developer tools.

### Source excerpt

Belgian developer Adrien Leloup builds with Laravel at Whitecube, co-leads PHPxBrussels, and is launching Hiker.dev in early access.

## Zed for Windows Progress Update

DevFeed: [Zed for Windows Progress Update](<https://devfeed.tech/articles/zed-for-windows-what-s-taking-so-long-13568.md>)

Original publisher: [Read original article](<https://zed.dev/blog/windows-progress-report>)

Author: Max Brunsfeld

Published: 2025-08-19T00:00:00Z

Content type: article

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [Windows](<https://devfeed.tech/topics/windows.md>), [DirectX](<https://devfeed.tech/topics/directx.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>)

Tags: [directx](<https://devfeed.tech/tags/directx.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [windows](<https://devfeed.tech/tags/windows.md>), [zed](<https://devfeed.tech/tags/zed.md>)

### AI overview

Zed's Windows team reports progress on a DirectX 11 rendering backend intended to avoid Vulkan compatibility issues and reduce memory use. The work also involved shader debugging, a switch from Direct2D to DirectWrite for glyph rasterization, and investigation of GPU-memory allocation failures.

### Source excerpt

An update on what the Zed for Windows team has been doing in July and August.

## Introducing Skia Graphite: Chrome's rasterization backend for the future

DevFeed: [Introducing Skia Graphite: Chrome's rasterization backend for the future](<https://devfeed.tech/articles/introducing-skia-graphite-chrome-s-rasterization-backend-for-the-future-4195.md>)

Original publisher: [Read original article](<https://blog.chromium.org/2025/07/introducing-skia-graphite-chromes.html>)

Author: Chromium Blog (noreply@blogger.com)

Published: 2025-07-08T17:46:00Z

Content type: article

Language: en

Sources: [Chromium Blog](<https://devfeed.tech/sources/chromium-blog.md>)

Topics: [Chrome](<https://devfeed.tech/topics/chrome.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Interaction to Next Paint](<https://devfeed.tech/topics/interaction-to-next-paint.md>), [browser](<https://devfeed.tech/topics/browser.md>), [OpenGL](<https://devfeed.tech/topics/opengl.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [Web](<https://devfeed.tech/topics/web.md>), [glsl](<https://devfeed.tech/topics/glsl.md>)

Tags: [chrome](<https://devfeed.tech/tags/chrome.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [graphics-apis](<https://devfeed.tech/tags/graphics-apis.md>), [interaction-to-next-paint](<https://devfeed.tech/tags/interaction-to-next-paint.md>), [multithreading](<https://devfeed.tech/tags/multithreading.md>), [none](<https://devfeed.tech/tags/none.md>), [performance](<https://devfeed.tech/tags/performance.md>), [render](<https://devfeed.tech/tags/render.md>), [screen](<https://devfeed.tech/tags/screen.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [the-fast-and-the-curious](<https://devfeed.tech/tags/the-fast-and-the-curious.md>), [vulkan](<https://devfeed.tech/tags/vulkan.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article introduces Skia Graphite, a new GPU rasterization backend for Chrome on Apple Silicon Macs. Graphite uses fewer code paths, supports modern graphics APIs such as Metal, Vulkan, and D3D12, and is multithreaded by default. It improved Motionmark 1.3 scores by almost 15% on a MacBook Pro M3 and improved several real-world performance metrics.

### Source excerpt

Today's The Fast and the Curious post covers the launch of Skia's new rasterization backend, Graphite, in Chrome on Apple Silicon Macs. Graphite is instrumental in helping Chrome achieve exceptional scores on Motionmark 1.3 and is key to unlocking a ton of future improvements in Chrome Graphics. A brief history of Skia in Chrome In Chrome, Skia is used to render paint commands from Blink and the browser UI into pixels on your screen, a process called rasterization. Skia has powered Chrome Graphics since the very beginning. Skia eventually ran into performance issues as the web evolved and became more complex, which led Chrome and Skia to invest in a GPU accelerated rasterization backend called Ganesh. Over the years, Ganesh matured into a solid highly performant rasterization backend and GPU rasterization launched on all platforms in Chrome on top of GL (via ANGLE on Windows D3D9/11). However, Ganesh always had a GL-centric design with too many specialized code paths and the team was hitting a wall when trying to implement optimizations that took advantage of modern graphics APIs in a principled manner. This set the stage for the team to rethink GPU rasterization from the ground up in the form of a new rasterization backend, Graphite. Graphite was developed from the start to be principled by having fewer and more comprehensible code paths. This forward looking design helps take advantage of modern graphics APIs like Metal, Vulkan and D3D12 and paradigms like compute based path rasterization, and is multithreaded by default. Results With Graphite in Chrome, we increased our Motionmark 1.3 scores by almost 15% on a Macbook Pro M3. At the same time, we improved real world metrics like INP (interaction to next paint time), LCP (time to largest contentful paint), graphics smoothness (percent dropped frames), GPU process malloc memory usage, and others. This all means substantially smoother interactions, less stutter when scrolling, and less time waiting for sites to show

## Doom GPU Flame Graphs

DevFeed: [Doom GPU Flame Graphs](<https://devfeed.tech/articles/doom-gpu-flame-graphs-13603.md>)

Original publisher: [Read original article](<http://www.brendangregg.com/blog//2025-05-01/doom-gpu-flame-graphs.html>)

Published: 2025-04-30T14:00:00Z

Content type: article

Language: en

Sources: [Brendan Gregg's Blog](<https://devfeed.tech/sources/brendan-gregg-s-blog.md>)

Topics: [GPU](<https://devfeed.tech/topics/gpu.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [intel](<https://devfeed.tech/topics/intel.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [doom](<https://devfeed.tech/tags/doom.md>), [dust](<https://devfeed.tech/tags/dust.md>), [flame-graph](<https://devfeed.tech/tags/flame-graph.md>), [games](<https://devfeed.tech/tags/games.md>), [gaming](<https://devfeed.tech/tags/gaming.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [intel](<https://devfeed.tech/tags/intel.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [profile](<https://devfeed.tech/tags/profile.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [svg](<https://devfeed.tech/tags/svg.md>)

### AI overview

The article demonstrates full-stack GPU flame graphs and GPU FlameScope using GZDoom, including Intel Battlemage GPU support. It shows how synchronized CPU and GPU profiling can correlate workload periods and identify GPU shader compilation and NIR preprocessing as sources of CPU activity.

### Source excerpt

AI Flame Graphs are now open source and include Intel Battlemage GPU support, which means it can also generate full-stack GPU flame graphs for providing new insights into gaming performance, especially when coupled with FlameScope (an older open source project of mine). Here's an example of GZDoom, and I'll start with flame scopes for both CPU and GPU utilization, with details annotated: (Here are the raw CPU and GPU versions.) FlameScope shows a subsecond-offset heatmap of profile samples, where each column is one second (in this example, made up of 50 x 20ms blocks) and the color depth represents the number of samples, revealing variance and perturbation that you can select to generate a flame graph just for that time range. Update: the row size can be ajusted (it is limited by the sample rate captured in the profile), e.g., you could generate 60 rows to match 60fps games. Putting these CPU and GPU flame scopes side by side has enabled your eyes to do pattern matching to solve what would otherwise be a time-consuming task of performance correlation. The gaps in the GPU flame scope on the right - where the GPU was not doing much work - match the heavier periods of CPU work on the left. CPU Analysis FlameScope lets us click on the interesting periods. By selecting one of the CPU shader compilation stripes we get the flame graph just for that range: This is brilliant, and we can see exactly why the CPUs were busy for about 180 ms (the vertical length of the red stripe): it's doing compilation of GPU shaders and some NIR preprocessing (optimizations to the NIR intermediate representation that Mesa uses internally). If you are new to flame graphs, you look for the widest towers and optimize them first. Here is the interactive SVG. CPU flame graphs and CPU flame scope aren't new (from 2011 and 2018, both open source). What is new is full-stack GPU flame graphs and GPU flame scope. GPU Analysis Interesting details can also be selected in the GPU FlameScope for generating

## Vibecoding a Totoro tribute with Junie

DevFeed: [Vibecoding a Totoro tribute with Junie](<https://devfeed.tech/articles/vibecoding-a-totoro-tribute-with-junie-32084.md>)

Original publisher: [Read original article](<https://www.maiatoday.net/p/vibecoding-a-totoro-tribute-with-junie/>)

Published: 2025-03-02T21:02:23Z

Content type: tutorial

Language: en

Sources: [maiatoday](<https://devfeed.tech/sources/maiatoday.md>)

Topics: [junie](<https://devfeed.tech/topics/junie.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [shaders](<https://devfeed.tech/topics/shaders.md>)

Tags: [animate](<https://devfeed.tech/tags/animate.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [junie](<https://devfeed.tech/tags/junie.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [screen](<https://devfeed.tech/tags/screen.md>), [shaders](<https://devfeed.tech/tags/shaders.md>)

### AI overview

The article describes using Junie to experiment with visual drawing techniques in a Kotlin Multiplatform Compose desktop project. The project combines canvases, gradients, paths, shapes, text, shaders, animations, and interaction to create a Totoro tribute, without aiming for production readiness.

### Source excerpt

Sunday afternoon. Perfect time to hang out with Junie. I want to refresh my memory on some Compose drawing techniques. I am not really in the mood for Googling. I don't need a production ready app. I really just want to mess around. How far can I vibe code this. I'll start off by setting Junie to brave mode. I added an image and some colours to the repo of a blank compose desktop project. I also put a copy of an older blogpost of mine with some drawing techniques. I set some ground rules with the first prompt and then just keep asking Junie to add things. Create a guidelines file with the following information and update the README.md file. Let's explore some visual techniques in this Kotlin multiplatform project. The aim is to go for variety of techniques. Feel free to use the canvas, brush, paint, gradient, lines, paths, rounded polygons, skia shaders, text, colours, shapes. Or anything that will create an interesting visual effect. Animations are not necessary but can be added. The project does not have a practical application other than to demonstrate how to create interesting visual elements and to have some fun. It is a visual tribute to the Studio Ghibli film, [My Neighbor Totoro](https://en.wikipedia.org/wiki/My_Neighbor_Totoro). * It does not need any tests * Layer all the visual techniques on the main composable screen. * Find the suggested fonts in the resources folder * Find inspiration in the docs/looks folder and in the docs/blogpost folder I think Junie got what I wanted to do, I never explained what Totoro looks like but it figured out something from the included inspiration image. The early experiments needed some tweaking The only time the project didn't run was when Junie didn't download the new fonts but I found the instructions on where to get the fonts added to the README.md. I had no real expectations so I'm pretty happy with the final result. Animating rain and clickable wobbling Totoro. No explanations really what can I say I didn't read the

## Getting Started with React Native Skia

DevFeed: [Getting Started with React Native Skia](<https://devfeed.tech/articles/getting-started-with-react-native-skia-1402.md>)

Original publisher: [Read original article](<https://shopify.engineering/getting-started-with-react-native-skia>)

Author: Daniel Friyia

Published: 2023-12-04T15:00:03Z

Content type: tutorial

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [React Native](<https://devfeed.tech/topics/react-native.md>), [Library](<https://devfeed.tech/topics/library.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [SVG](<https://devfeed.tech/topics/svg.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [animation](<https://devfeed.tech/tags/animation.md>), [article](<https://devfeed.tech/tags/article.md>), [browser](<https://devfeed.tech/tags/browser.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ios](<https://devfeed.tech/tags/ios.md>), [macos](<https://devfeed.tech/tags/macos.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [svg](<https://devfeed.tech/tags/svg.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This tutorial introduces React Native Skia, a cross-platform 2D graphics library for creating custom drawings, animations, visual effects, and interactive experiences across mobile, desktop, and browser platforms. It explains why developers might choose Skia over more limited standard components or static SVG approaches.

### Source excerpt

Skia is a cross-platform 2D graphics library that provides a set of drawing primitives which run on iOS, Android, macOS, Windows, Linux, and the browser. Over the past two years, Shopify Engineering has sponsored development of the @shopify/react-native-skia library that exposes Skia functionality to React Native. The React Native (RN) Skia community is one of the most vibrant and interesting in the React world.

## 5 Metaball Animations in Jetpack Compose

DevFeed: [5 Metaball Animations in Jetpack Compose](<https://devfeed.tech/articles/5-metaball-animations-in-jetpack-compose-25760.md>)

Original publisher: [Read original article](<https://www.sinasamaki.com/5-metaball-animations-in-jetpack-compose/>)

Author: sinasamaki

Published: 2023-01-26T07:00:19Z

Content type: tutorial

Language: en

Sources: [sinasamaki](<https://devfeed.tech/sources/sinasamaki.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [SDK](<https://devfeed.tech/topics/sdk.md>)

Tags: [animation](<https://devfeed.tech/tags/animation.md>), [article](<https://devfeed.tech/tags/article.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [shaders](<https://devfeed.tech/tags/shaders.md>)

### AI overview

A tutorial showing how to create five metaball animations in Jetpack Compose using helper composables and an AGSL shader. Examples include progress loaders, switches, expandable FABs, swipe-to-dismiss interactions, and bottom-navigation indicators.

### Source excerpt

Stunning gooey animations created in Jetpack Compose

## Monthly Update on a Haskell Game Engine

DevFeed: [Monthly Update on a Haskell Game Engine](<https://devfeed.tech/articles/monthly-update-on-a-haskell-game-engine-27910.md>)

Original publisher: [Read original article](<http://alt-romes.github.io/posts/2023-01-01-monthly-update-on-a-haskell-game-engine.html>)

Published: 2023-01-01T00:00:00Z

Content type: opinion

Language: en

Sources: [Romes' Musings](<https://devfeed.tech/sources/romes-musings.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [Game engine](<https://devfeed.tech/topics/game-engine.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [glsl](<https://devfeed.tech/topics/glsl.md>), [Graphics](<https://devfeed.tech/topics/graphics.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [programming](<https://devfeed.tech/tags/programming.md>), [render](<https://devfeed.tech/tags/render.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [technical](<https://devfeed.tech/tags/technical.md>), [vulkan](<https://devfeed.tech/tags/vulkan.md>)

### AI overview

A monthly development update on Ghengin, an unreleased Haskell game engine. It describes a procedural-planets demo and outlines the engine's Vulkan renderer, FIR shaders embedded in Haskell, entity management, scene graph, render queue, and supporting libraries.

### Source excerpt

Contents 1 Ghengin 1.1 Bullets on Technical Details 1.2 The Small Victories 1.3 A peek into the code 1 Ghengin I've been working the past month or two in a game engine titled Ghengin (pronounced /ɡɛn-ʤɪn/, never /ɡɛn-ɡɪn/). This is not yet a release, and version 0.1.0 is far into the future. However, I've come a long way and I'd like to share a few pictures of my progress. This post was migrated from the discussion at the Haskell Discourse The demo I've been working on is based on Sebastian Lague's series Procedural Planets. It is a showcase of procedurally generated planets you can move around in and tweak the procedural generation parameters of the planets to create oceans and continents. Fig 1. Screenshot of planets demo 1.1 Bullets on Technical Details I hope to, soon enough, write a more substantial explanation of the engine's technical challenges and overall design decisions so far, and on the game developer's facing side of the engine. In the meantime, here are a few key points regarding the technical feats of the engine along with the main libraries it currently depends on, which help create a picture of how it is working: The renderer is written using the great bindings to the Vulkan API The shaders are crucial in the overall design, and a lot of code depends on their definition (e.g. preparing render pipelines, allocating descriptor sets and textures, everything materials related ...). The shaders are written using FIR, an amazing shader language embedded in Haskell! The entity management, scene graph and render queue are done/created through the apecs entity component system. Vectors and matrices are from geomancy GLFW-b for window management and user input (used as the window backend for vulkan) The dear-imgui bindings for the GUI JuicyPixels for loading textures FIR is a really cool shader library and unlike any you've likely tried before (it's embeded in Haskell, but that's just the start). The shader's "interfaces" are defined at the type level, and in

## Using ShaderToy to Prototype a Graphics Idea Before Integrating It into an App

DevFeed: [Using ShaderToy to Prototype a Graphics Idea Before Integrating It into an App](<https://devfeed.tech/articles/make-a-prototype-30601.md>)

Original publisher: [Read original article](<https://ryanharter.com/blog/2020/12/make-a-prototype/>)

Published: 2020-12-16T16:08:53Z

Content type: tutorial

Language: en

Sources: [Blogs on Ryan Harter](<https://devfeed.tech/sources/blogs-on-ryan-harter.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [shaders](<https://devfeed.tech/topics/shaders.md>), [Graphics](<https://devfeed.tech/topics/graphics.md>), [Web](<https://devfeed.tech/topics/web.md>), [App](<https://devfeed.tech/topics/app.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [audio](<https://devfeed.tech/tags/audio.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [performance](<https://devfeed.tech/tags/performance.md>), [prototype](<https://devfeed.tech/tags/prototype.md>), [shaders](<https://devfeed.tech/tags/shaders.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article explains how to use a lightweight ShaderToy prototype to investigate a graphics idea before investing time in a larger native app. The author used it to test a brush-stroke concept for Pigment, quickly confirm that the approach could work, and assess whether its performance might be feasible on high-resolution mobile hardware.

### Source excerpt

When coming up with ideas for new ways to solve problems in my code, there are usually a number of unknowns. As I brainstorm solutions, I don't mind a bit of hand-wavy magic over certain portions of the solution, but I find it valuable to be honest about which parts I'm sure of, and which parts will need some more investigation. I was recently thinking about an experimental brushing engine that I'm working on for Pigment, the coloring book app that I work on, and had an idea for a new way to draw brush strokes that had the potential to use far less memory and be able to draw faster. While I had the rough idea for how this drawing would work, I wasn't exactly sure if the code could be structure in a way that would give me the performance gains I had hoped for, so it was time for a prototype.