Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Fundus is a cross platform application and game development framework for Scala. It aims to support desktop platforms via the JVM, web-based platforms via HTML5, Android devices via Dalvik and iOS devices via RoboVM. It is similar to cross platform game development libraries like libGDX and PlayN, but also aims to provide a cross platform user interface toolkit of sufficient quality to enable the development of "native-like" apps, in much the same way that native-like apps are created using HTML5 and a whole lot of CSS jockeying.

Fundus is built atop OpenGL/ES 2.0 and requires such services from the platforms on which it runs. This means it only runs on WebGL-enabled browsers. OpenGL/ES 2.0 is pretty much a given these days on mobile and desktop platforms.


Some of Fundus's components are sufficiently simple or fundamental that they've been isolated into libraries that can be reused without making use of the greater Fundus framework:

  • fundus.geom - a library of 2D (and someday 3D) geometry primitives and routines
  • - OpenGL ES 2.0 minimally exposed as a Scala API

Built using these components is fundus.core which provides a number of different services, some of which make use of the above components and some of which make use of one another:

  • fundus.core.App - app lifecycle, logging and other miscellania
  • fundus.core.Assets - loading text and binary data, describing paths
  • fundus.core.Audio - decoding and playing SFX and music
  • fundus.core.Canvas - 2D drawing into bitmaps, text rendering
  • fundus.core.Input - keyboard, mouse, and touch input
  • fundus.core.Net - http, websocket and (on non-HTML5 platforms) raw sockets
  • fundus.core.Storage - simple key/value storage, "SQL-lite" storage (on non-HTML5 platforms)

Atop this foundation, a number of additional libraries are provided:

  • fundus.scene - a 2D scene graph library
  • fundus.anim - an animation and tweening library
  • fundus.ui - a user interface toolkit


The Fundus libraries are published to Maven Central for easy integration into your build. You can also build and install the latest SNAPSHOT version of Fundus thusly:

sbt publish-local

This will build everything and install it into your local Ivy repository.


Fundus is released under the BSD License. See the LICENSE file for details.


A cross platform application/game framework for Scala




No releases published


You can’t perform that action at this time.