hylogen: an EDSL for live-coding fragment shaders

[ graphics, library, mit ] [ Propose Tags ]

an EDSL for live-coding fragment shaders


[Skip to Readme]

Modules

[Last Documentation]

  • Hylogen
    • Hylogen.Booly
    • Hylogen.Expr
    • Hylogen.Globals
    • Hylogen.Program
    • Hylogen.Texture
    • Hylogen.Types
    • Hylogen.Vec
    • Hylogen.WithHylide
      • Hylogen.WithHylide.Core
      • Hylogen.WithHylide.Util

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.0.5, 0.1.0.6, 0.1.0.8, 0.1.0.10, 0.1.0.11, 0.1.0.12, 0.1.1.0, 0.1.1.1, 0.1.1.2, 0.1.1.3, 0.1.2.0, 0.1.2.1, 0.1.2.2, 0.1.2.3, 0.1.3.0, 0.1.3.1, 0.1.3.2, 0.1.4.0, 0.1.4.1, 0.1.5.0, 0.1.5.1
Dependencies base (>=4.8 && <4.9), bytestring, data-reify, filepath, fsnotify, http-types (>=0.9 && <0.10), process, text, vector-space, wai (>=3.2 && <3.3), warp (>=3.2 && <3.3), websockets [details]
License MIT
Author Sean Lee
Maintainer freshdried@gmail.com
Category Graphics
Home page https://hylogen.com
Uploaded by sleexyz at 2016-05-28T08:50:19Z
Distributions NixOS:0.1.5.1
Reverse Dependencies 1 direct, 0 indirect [details]
Executables hylide
Downloads 15877 total (87 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2016-05-28 [all 3 reports]

Readme for hylogen-0.1.2.0

[back to package description]

H Y L O G E N

Hackage Status

Hylogen is a purely functional language embedded in Haskell for live-coding fragment shaders, featuring:

  • a simple and pure syntax
  • standard operators (+, *, *^, <.>)
  • compat. w/ your fav haskell goodies (higher-order functions, ADTS, swanky polymorphism).

It comes with hylide, an accompanying rendering environment featuring:

  • hot-reloading
  • audio-reactive primitives
  • texture backbuffering

Install

cabal update
cabal install hylogen

This will install the hylogen package and hylide, the rendering environment.

Usage

-- ./Main.hs
module Main where
import Hylogen.WithHylide

color = vec4 (a, a, a, 1)
  where
    a = cos(x_ uvN * sin(time/10)*10 + x_ mouse )
      + sin(y_ uvN * sin(time/10)*10 + y_ mouse )

main = putStrLn . toGLSL $ color

run hylide...

hylide Main.hs

... live-code!

Go to localhost:5678 in your browser.

You will now see your changes to Main.hs propagate to your WebGL rendering environment!

References

  • The_Force by Shawn Lawson. Live-coding audio-reactive shaders!
  • data-reify by Andy Gill. Makes compile times combinatorially faster

Resources