My Projects

Hexasperate

An open-source tile-matching puzzle game that you can play free online!

Hexasperate is written in Elm and licensed under the GPL 3.0. The source code is available on GitHub. All graphics and animations are implemented in SVG and CSS. There are alternate color palettes available and options to reduce motion.

Hexasperate title screen with choices: Play, Best Times, How to Play, Options, About
Hexasperate title screen
A new, unsolved Hexasperate puzzle
An unsolved Hexasperate puzzle

PureScript Gesso

A PureScript library that makes it easy to use <canvas> graphics in standalone applications or Halogen components!

Gesso is licensed under the MIT License and the source code is available on GitHub.

Here’s a classic Hello World:

module Gesso.Example.Hello (main) where
import Effect (Effect)
import Gesso (launch)
import Gesso.Application (WindowMode(..), defaultBehavior)
import Gesso.Geometry (Scalers, null)
import Gesso.State (States)
import Gesso.Time (Delta)
import Graphics.Canvas (Context2D, fillText)
import Prelude (Unit, unit)
main :: Effect Unit
main = launch
{ name: "hello"
, initialState: unit
, viewBox: null
, window: Fullscreen
, behavior: defaultBehavior { render = render }
}
render :: Context2D -> Delta -> Scalers -> States Unit -> Effect Unit
render context _ _ _ =
fillText context "hello world" 500.0 500.0