Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A shared core library required by many other polygonal Haxe libraries.
branch: master

Merge branch 'dev'

latest commit 1cec6ee827
@polygonal authored

A "toolbox" library used by other polygonal libraries (core)



The library includes the following packages:




  • A fast Base64 encoder.
  • Resource loading / mass loader (flash only)


  • A simple logging framework.


  • A bunch of basic macros for generating classes at compile-time.



  • Entity framework for component based architectures.


  • Time-based updates, timeline, timed execution.


  • A tweening framework.


  • Misc utility functions.


Install Haxe and run $ haxelib install polygonal-core from the console. This installs the polygonal-core library hosted on, which always mirrors the git master branch. From now on just compile with $ haxe ... -lib polygonal-core. If you want to test the latest beta build, you should pull the dev branch and add the src folder to the classpath via $ haxe ... -cp src.


1.0.4 (released 2013-07-08)

  • modified: move Sprintf to separate haxelib library (polygonal-sprintf, de.polygonal.Sprintf)

1.0.3 (released 2013-06-28)

support Haxe Compiler 3.0.0

  • modified: support Haxe 3 only (Haxe 2.x and Neko 1.x are no longer supported)
  • fixed: ie10 console.debug
  • fixed: several fixes for Haxe 3
  • modified: refactor/simplify log system, improve log output similar to logcat default format
  • modified: removed Root class (replaced with de.polygonal.core.log.LogSystem)
  • modified: improve StringUtil.ellipsis
  • modified: Timeline: use statics instead of singleton pattern
  • modified: print call stack on assertion
  • modified: enable RLE (run length encoder) for all targets
  • modified: move resource loader to separate flash library
  • modified: renamed IObserver.update() to IObserver.onUpdate() to prevent method name clashing

1.02 (released 2013-01-30)

  • modified: change type to Dynamic
  • added: ClassUtil class
  • added:
  • fixed: EntityType + compilation server
  • modified: Observable.mute -> muteType, unmute -> unmuteType (name clash with Entity)
  • added: Mat33.setRotateX(), setRotateY()
  • fixed: Timebase.gameTime
  • fixed: some minor fixes for -D haxe3
  • modified: restore draw/tick state when calling Entity.wakeup() after Entity.sleep()
  • Timebase: use statics instead of singleton pattern

1.01 (released 2012-11-15)

  • fixed: Mathematics.floor(), ceil(), fwrap() for neko, don't use for cpp
  • modified: keep dispatching Timebase updates when calling MainLoop.pause()
  • modified: make de.polygonal.core.time.Delay cancelable
  • added: math.RootSolver class
  • modified: Entity: pass message sender when sending messages
  • fixed: keep existing fields in macro.Version
  • added: and Entity.isAny()
  • fixed: minor tweening fixes, added tweening examples
  • modified: Observable: consider group id in event filtering, use 30 bits for neko
  • added: TimelineListener as an alternative to TimelineEvent
  • modified: optimized tweening performance
  • added: Entity.iterator() to iterate over all children (non-recursive)
  • modified: merge Observable.bindMulti() and Observable.bind() into Observable.bind(), fix group filtering
  • fixed: ConfigXML: keep existing fields
  • added: Timebase.fps
  • modified: Entity: shorten names of frequently used methods
  • modified: Entity: more precise recursive message propagation
  • added: StringUtil.generateRandomKey()
  • fixed: ObserverMacro for Haxe 2.11+
  • added: RNORREXP (generate pseudo random normal and exponential variates)
  • added: PropertyFile macro to turn a property file into a class
  • modified: move macro package to util package
  • added: Compile-time tokenization of Sprintf format string (thanks Zachary Dremann -
  • modified: ParkMiller31 for all targets using haxe.Int32 (thanks Zachary Dremann -


  • Initial version.
Something went wrong with that request. Please try again.