Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Audio Visualization
  3. Hylogen

Hylogen

JavaScript

A Haskell library that embeds GLSL for live-coding shaders with a companion live-coding environment.

Visit WebsiteGitHubGitHub
488 stars25 forks0 contributors

What is Hylogen?

Hylogen is a Haskell library that embeds GLSL shader code as a domain-specific language, allowing developers to write and generate GLSL shaders using Haskell's syntax and type system. It solves the problem of writing error-prone, low-level GLSL code by providing a higher-level, type-safe abstraction. The project includes Hylide, a live-coding environment that automatically recompiles shaders and updates a WebGL preview in real-time.

Target Audience

Haskell developers interested in graphics programming, shader artists looking for a safer and more expressive shader development workflow, and programmers exploring live-coding environments for real-time visuals.

Value Proposition

Developers choose Hylogen because it combines Haskell's strong type system with GLSL, reducing runtime errors in shaders and enabling live coding. Its unique selling point is the seamless integration of functional programming with real-time graphics, offering a more robust and interactive shader development experience compared to writing raw GLSL.

Overview

GLSL embedded in Haskell

Use Cases

Best For

  • Live-coding visual performances and shader art
  • Learning GLSL through a type-safe functional language
  • Prototyping shaders with immediate visual feedback
  • Integrating shader programming into Haskell-based projects
  • Creating real-time graphics demos with hot-reloading
  • Teaching functional programming concepts through graphics

Not Ideal For

  • Projects not using Haskell or unwilling to adopt its ecosystem
  • Teams requiring hand-optimized GLSL for maximum performance in production
  • Developers unfamiliar with functional programming or Haskell's syntax
  • Applications needing live coding for non-WebGL graphics APIs like Vulkan or DirectX

Pros & Cons

Pros

Type-Safe Shader Development

Leverages Haskell's compile-time type checking to catch GLSL errors early, as shown by the automatic translation of typed Haskell expressions to valid GLSL code.

Live Coding Environment

Hylide provides real-time shader updates via WebSockets, enabling immediate visual feedback and iterative design, ideal for creative coding and demos.

Functional Programming Expressiveness

Allows shaders to be written with Haskell's functional constructs, such as pure functions and composition, making code more modular and reusable.

Observable Sharing Optimization

Uses data-reify for type-safe observable sharing, optimizing generated GLSL by reusing computed values, as evidenced in the example output with reduced redundancy.

Cons

Haskell Dependency Overhead

Requires knowledge of Haskell and its toolchain (Stack or Cabal), adding significant learning curve and setup complexity for non-Haskell developers.

Niche Ecosystem Limitations

As a specialized library, it has fewer community resources, tutorials, and integrations compared to mainstream shader tools like ShaderToy or raw GLSL workflows.

WebGL-Centric Live Coding

Hylide is tied to WebGL for live updates, limiting its utility for projects targeting other graphics APIs without manual shader pipeline management.

Limited Documentation Depth

The README provides basic examples but lacks comprehensive guides on advanced usage, error handling, or integration with other Haskell graphics libraries.

Frequently Asked Questions

Quick Stats

Stars488
Forks25
Contributors0
Open Issues20
Last commit2 years ago
CreatedSince 2016

Tags

#haskell#functional-programming#real-time-graphics#graphics#shader-programming#glsl#webgl#live-coding

Built With

G
GLSL
H
Haskell
W
WebGL
W
WebSockets

Links & Resources

Website

Included in

Audio Visualization5.0k
Auto-fetched 1 day ago

Related Projects

Pixi.jsPixi.js

The HTML5 Creation Engine: Create beautiful digital content with the fastest, most flexible 2D WebGL renderer.

Stars48,039
Forks5,063
Last commit1 day ago
CavaCava

Cross-platform Audio Visualizer

Stars6,359
Forks295
Last commit3 days ago
SlangSlang

🎤 a simple audio programming language implemented in JS

Stars1,204
Forks31
Last commit6 years ago
Clubber.jsClubber.js

Application of music theory in audio reactive visualizations

Stars376
Forks23
Last commit8 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub