[ANN] GoGPU — Pure Go GPU Computing Ecosystem (WebGPU, 2D Graphics, Shaders)

33 views
Skip to first unread message

a.ko...@gmail.com

unread,
Dec 18, 2025, 6:34:33 PM (8 hours ago) Dec 18
to golang-nuts
Hi gophers!

I'd like to introduce GoGPU — an ecosystem of Pure Go libraries for GPU programming. No CGO, no Rust, no C++ — just Go.

The project started from a Reddit discussion about GUI/graphics support in Go:
https://www.reddit.com/r/golang/comments/1pdw9i7/go_deserves_more_support_in_gui_development/

And from the realization that fogleman/gg (the beloved 2D graphics library) has been unmaintained for years:
https://github.com/fogleman/gg/issues/208


WHAT WE'VE BUILT
----------------

gogpu/wgpu — Pure Go WebGPU implementation
Complete WebGPU types, validation layer, and hardware abstraction. Three backends: Vulkan (cross-platform), OpenGL ES (Windows/Linux), and Software (full CPU rasterizer for headless/CI). ~55K lines of pure Go.
https://github.com/gogpu/wgpu

gogpu/naga — Pure Go shader compiler
WGSL to SPIR-V compiler. Supports vertex, fragment, and compute shaders with atomics and barriers. ~17K lines.
https://github.com/gogpu/naga

gogpu/gg — Enterprise-grade 2D graphics
Spiritual successor to fogleman/gg with GPU acceleration. Canvas API, text rendering, images, clipping, 29 blend modes, scene graph, parallel rendering. ~25K lines.
https://github.com/gogpu/gg

gogpu/gogpu — High-level graphics framework
Simple API for GPU applications. Dual backend: use wgpu-native FFI for production or Pure Go for zero-dependency builds.
https://github.com/gogpu/gogpu

gogpu/ui — GUI widget toolkit (planned)
The end goal — a complete widget toolkit for desktop applications. Currently in early planning stage.
https://github.com/gogpu/ui


THE VISION
----------

We want Go to have first-class graphics support — from low-level GPU access to high-level GUI widgets. The stack:

Your App / GUI

gogpu/ui (widget toolkit, planned)

gogpu/gg (2D graphics)

gogpu/gogpu (GPU framework)

gogpu/wgpu (WebGPU) + gogpu/naga (shaders)

Vulkan / Metal / DX12 / OpenGL


USE CASES
---------

- Game development (2D games, game engines)
- Data visualization dashboards
- CAD/vector graphics applications
- Server-side image generation (PDF, charts, thumbnails)
- CI/CD testing without GPU hardware
- Desktop applications with custom UI
- Embedded systems with minimal dependencies


CURRENT STATUS
--------------

Total: ~154K lines of pure Go code across the ecosystem.

All libraries are functional and tested. The software rasterizer just got a major update with full triangle rendering, depth/stencil buffers, and parallel processing.

We're now working toward a GUI widget toolkit (gogpu/ui).


PUBLICATIONS
------------

Dev.to articles about the journey:
- GoGPU Announcement: https://dev.to/kolkov/gogpu-a-pure-go-graphics-library-for-gpu-programming-2j5d
- 100K Lines in Two Weeks: https://dev.to/kolkov/gogpu-from-idea-to-100k-lines-in-two-weeks-building-gos-gpu-ecosystem-3b2
- Naga Shader Compiler: https://dev.to/kolkov/building-a-shader-compiler-in-pure-go-naga-reaches-v040-39ol
- gg 2D Graphics: https://dev.to/kolkov/pure-go-2d-graphics-library-with-gpu-acceleration-introducing-gogpugg-538h


INTERESTED?
-----------

We'd love to hear your thoughts:
- Is this something you'd use?
- What features would be most valuable for your projects?
- Want to contribute?

GitHub: https://github.com/gogpu

Thanks for reading!

--
Andrey Kolkov
Reply all
Reply to author
Forward
0 new messages