# New "Imperative" Syndicate Implementation This experimental reimplementation of Syndicate takes the language-level constructs of facets, endpoints, and fields to heart, and integrates knowledge of facets and endpoints into the dataspace implementation itself. It gains a *significant* performance advantage by doing so. Programs seem to be about *20x faster*. Some are only 10x faster, some are 30x faster. The prototype that embodies the new idea is in [prototype.rkt](prototype.rkt). All the drivers end up looking much nicer with this new implementation. The previously-separate GL-2D support is now integrated as just another driver (though the timing characteristics of the old implementation are not precisely preserved). The [ground.rkt](ground.rkt) implementation is much cleaner. The implementation test suite lives in [test/](test/). Try out the "many Racket logos" animation example/demo: ```shell racket examples/gl-2d-many.rkt ``` Hopefully you'll get a smooth 60fps, though I admit I'm running it on a fairly fast machine so you might need to drop the sprite-count in the code a bit to sustain 60fps.