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.WithHyde

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-18T20:00:36Z
Distributions NixOS:0.1.5.1
Reverse Dependencies 1 direct, 0 indirect [details]
Executables hyde
Downloads 15878 total (62 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-18 [all 3 reports]

Readme for hylogen-0.1.1.0

[back to package description]

H Y L O G E N

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 hyde, 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 hyde, the rendering environment.


Usage

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

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

1. run hyde...

hyde Main.hs

2. ... 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

Resources