Arcan is a powerful development framework for creating virtually anything between user interfaces for specialised embedded applications all the way to full-blown standalone desktop environments. Boot splash screen? no problem. Custom Interface for your Home Automation Project? sure thing. Stream media processing? Of course.
It has been used in a number of both experimental, hobby, academic research and commerical projects and products alike, in areas ranging from VR desktops to industrial computer vision systems for robotic automation.
At its heart lies a robust and portable multimedia engine, with a well-tested and well-documented interface, programmable using Lua. At every step of the way, the underlying development emphasises security, performance and debugability guided by a principle of least surprise in terms of API design.
See the Videos page for videos from some of the public projects built using the engine as a main component. Most of the detailed user and development documentation can be found on the Wiki and the development discussion goes on in the #arcan IRC channel on freenode.
For a high-level presentation, please refer to this video:
There are too many features to cover, but here follows an brief listing of the “basics”:
- Input devices: Keyboards, Mice, Joysticks/other game devices, Touch displays, VR headsets, Eye trackers.
- Output devices: Mixed DPI, Multi-monitor, Multi-/hotswap- GPU, Custom LED controllers.
- Audio: Streaming playback, Device capture, Sample playback.
- Network Sharing: Bidirectional VNC. Per-client Audio, Video and Input streaming.
- Video: Complex 2D hierarchies and animated transforms, 3D models, Offscreen rendering effects, GPU shaders, Picking, Streaming video Sources and Streaming Recording.
- System integration: Client state management, Suspend/Resume, Monotonic Timers, Hotplug, Load balancing, DoS protection.
- Portability: Native graphics on Linux, FreeBSD, OpenBSD. High-level graphics on OSX.
- Client support: Easy to use native APIs, Dedicated backends for Wayland, Xorg, QEmu, builtin terminal emulator and libretro.
- Display & Desktop server features: Server, Client and window manager crash recovery. Hot-pluggable custom input drivers, clipboard managers, assistive tools,
With that comes a rich set of tools for network proxying, debugging, profiling and integrating with assistive devices.