Giter Site home page Giter Site logo

aphexus / yampa Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ivanperez-keera/yampa

0.0 2.0 0.0 4.72 MB

Functional Reactive Programming domain-specific language embedded in Haskell, for programming hybrid (mixed discrete-time and continuous-time) systems.

License: BSD 3-Clause "New" or "Revised" License

Haskell 100.00%

yampa's Introduction

Yampa

Build Status Version on Hackage Flattr this

Domain-specific language embedded in Haskell for programming hybrid (mixed discrete-time and continuous-time) systems. Yampa is based on the concepts of Functional Reactive Programming (FRP) and is structured using arrow combinators.

Installation

Yampa is available on hackage: http://hackage.haskell.org/package/Yampa.

$ cabal sandbox init         # Optional, but recommended
$ cabal update
$ cabal install Yampa

Examples

There is a directory with examples, which includes two basic SDL examples and one with using a Nintendo Wii Remote. You can install them with:

$ cabal sandbox init         # Optional, but recommended
$ cabal update
$ cabal install Yampa -fexamples

Other examples

There are many programs written in Yampa. See the following examples:

  • Haskanoid: a game that uses SDL multimedia, wiimote and kinect. It's cross platform and works in desktop, mobile, and web (compiled with GHCJS).
  • Space invaders.
  • Frag: a 3D first person shooting game.
  • Yampa-2048: an implementation of the game 2048 using Yampa and Gloss.
  • MandelbrotYampa: a "hello world" using SDL2, Yampa and OpenGL.
  • Haskelloids: a reproduction of the Atari 1979 classic "Asteroids"

A more comprehensive list can be obtained using the reverse dependency finder (http://packdeps.haskellers.com/reverse/Yampa), but only programs uploaded to hackage are listed.

Haskanoid Video Space Invaders Space Invaders
Haskanoid, SDL cross-platform arkanoid. SpaceInvaders, GLUT arcade game Yampa2048, a gloss board game

Use in production

Backends

Yampa is backend agnostic, you can ultimately connect it to any backend you want. Existing backends include:

  • SDL
  • SDL2
  • OpenGL / GLUT
  • WX (see wxHaskell)
  • HTML Canvas

Documentation and tutorials

The distribution of Yampa comes with substantial haddock documentation, which you can build using haddock or just read online. To build a local copy, do:

$ cabal unpack Yampa ## Or git clone this-repo
$ cd Yampa-*
$ cabal init
$ cabal install --only-dependencies
$ cabal configure && cabal haddock --internal

Documentation is also available online: https://wiki.haskell.org/Yampa

Papers and technical reports

Help and collaboration

You can collaborate at least in three ways:

  • File an issue (https://github.com/ivanperez-keera/Yampa/issues).

  • Write documentation (send a link and/or a pull request).

  • Research: we are constantly trying to improve Yampa. We'd be glad to have collaborators. If you are working on this, please, let us know.

    (Interactivity and FRP is the main topic of my (ongoing) work and research, so I'll keep working on this for some time. -- Ivan Perez)

Authors

  • Henrik Nilsson
  • Antony Courtney

Maintainer

  • Ivan Perez

yampa's People

Contributors

ivanperez-keera avatar suzumiyasmith avatar giorgidze avatar madjestic avatar jonmouchou avatar mgttlinger avatar meimisaki avatar eapcochran avatar ptvirgo avatar ryanglscott avatar appleprincess avatar chriz-zeller avatar sadiejay avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.