FAIL LOOP is a non-profit organization committed to teaching computational principles through experimentation and human-to-human interaction.
We embrace failures as a fundamental component of learning, "when we fail, we try again", hence our name.

FAIL, FAILURES & FAILING

FAIL is also the name of the primitive recursive driven programming language (of the LOOP family) at the core of our technological ecosystem.
Programs in FAIL are called FAILURES (after all, the attractiveness/lure of the FAIL language are its programs).
There is a uniformly colored polygonal game engine called FAILING (FAIL Ideal game eNGine) where anyone (at any age) can harness the power of combining a simple programming language with graphical design and music skills using this free web tool (no registry, no cookies, no ads, no tracking).

Embedded bytecode FAIL compiler in C: failloop.h and failloop.c
Integration example: failtest.zip

FAILING

FAILURES occur in the FAIL Ideal game eNGine, better known as FAILING, which can be controlled by notes (microphone) and by the following FAILCODES (camera):
.

What makes this game engine innovative and special is on the one hand, the sheer number of different inputs that can be used to prototype ideas (react to FAILCODES, sound notes, touches/clicks, and subprograms/bots) and on the other hand, the ability to share those prototypes or rich expressions and access how each of them is made, to study, improve and imagine something new, despite (or perhaps thanks to) the intentionally limited resources provided by this minimalist design.

Games and programming games

Technical specifications

Platform:
Web

Display:
Adjusts to browser size (1:1)

Colors:
Choose any 16-color palette

Objects:
Uniformly colored convex polygons using up to 9600 vertexes

Physics:
Check whether 2 polygons overlap

User input:
FAILCODES (requires camera);
Notes from C2 to C6 (requires microphone);
Multitouch coordinates (pressed / released)

Camera:
Move; rotate; zoom

Update frequency:
30 ticks per second

Code:
FAIL

Max instructions:
10232 instructions per tick

Max memory:
16777216 memory cells

Persistent state:
Yes. Up to 32767 bytes

Project management:
Edit, download, load, upload, and share projects

Execute code external to main program:
Yes. Up to 4 external programs (bots)

Audio:
Up to 255 user-defined samples using 16 configurable waveforms over 4 stereo channels

Featured examples

Documentation

Try the examples and have a look at their source code () to see what makes them tick.

This primer highlights the differences/similarities between Prequel/FAIL and other programming languages.

Additionally, the specific Input and Functions available can be found here (replacing suffix "pqp." with "idl.").

Start afresh

Learn from FAILURES. Enjoy!