# Five runnable Raylib example triples

[العربية](README.ar.md) · [Guide](../../raylib/guide.en.md) · [Reference](../../raylib/reference.en.md) · [Deployment](../../raylib/deployment.en.md)

Each row has English, Arabic and mixed source with the same behavior. The aliases
change library/language vocabulary; user identifiers, user-record fields,
comments, strings and paths retain their contents. English/Arabic variants are
generated from the mixed files by `python3 tools/generate_raylib_examples.py`.

| Example | English | العربية | Mixed | What to observe |
| --- | --- | --- | --- | --- |
| Window/input | [source](window-input.en.aspl) | [المصدر](window-input.ar.aspl) | [source](window-input.mixed.aspl) | Space/click/scroll changes the background; typed scalar and resize dimensions print. Escape or 180 frames ends the loop. |
| Sprite/Camera2D/collision | [source](sprite-camera.en.aspl) | [المصدر](sprite-camera.ar.aspl) | [source](sprite-camera.mixed.aspl) | PNG atlas, flips, transformed sprites and the red rectangle intersection; alias unload during the final frame. |
| Shaped text/audio | [source](shaped-text-audio.en.aspl) | [المصدر](shaped-text-audio.ar.aspl) | [source](shaped-text-audio.mixed.aspl) | Pre-window measurement, Arabic/Latin/marks, logical and ink boxes, looping OGG and explicit stream updates for 60 frames. |
| Concurrent HTTP/frame | [source](concurrent-http.en.aspl) | [المصدر](concurrent-http.ar.aspl) | [source](concurrent-http.mixed.aspl) | Bounded busy/outbound/fast handler turns, state snapshot conflict and a moving square. |
| Identity/literals | [source](identity-literals.en.aspl) | [المصدر](identity-literals.ar.aspl) | [source](identity-literals.mixed.aspl) | Exact aliases, user record identity, decomposed path/NUL content, headless shaped measurement and bilingual scalar diagnostic. |

From the repository root:

```sh
aspl run docs/examples/raylib/sprite-camera.ar.aspl
aspl build -o build/identity docs/examples/raylib/identity-literals.en.aspl
./build/identity
```

The [sprite notice](../assets/raylib-sprites.NOTICE) covers the original 32x16
PNG under Apache-2.0 OR MIT. The [tone notice](../assets/raylib-tone.NOTICE)
dedicates the short generated WAV/OGG/MP3 tone to CC0. Default fonts/data are
embedded and included in the generated companion notices. For source-free
relocation preserve `docs/examples/assets` relative to the working directory.

For the HTTP example, run `python3 -m http.server 8001 --bind 127.0.0.1` in another
terminal, start the example, then request `/busy`, `/wait` and `/fast` on port 8000
using separate clients. `/busy` remains unfinished until immediate session close;
`/wait` requests the upstream and conditionally publishes a stale snapshot;
`/fast` responds while drawing continues. A delayed upstream makes the conflict
easier to observe. `tests/test-raylib-examples.py --real` supplies that delay and
uses available loopback ports automatically. The manual example ends after 180
frames; request promptly. Unoccupied ports and a supported display are required.

`make test-raylib-handoff` checks all declarations/triples and runs the identity
example as source and source-free generated native programs in all three
vocabularies. `python3 tests/test-raylib-examples.py build/aspl --real` adds brief
selected device/combined runs on the current host. This is shared proportional
evidence, not every example on every language/host. Remaining supported-route
and clean-host receipts are in [ticket 30](../../releases/0.6.0/README.md#verification-scope).
