# fdivitto/FabGL

ESP32 Display Controller (VGA, PAL/NTSC Color Composite, SSD1306, ST7789, ILI9341), PS/2 Mouse and Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal

Repository: https://github.com/fdivitto/FabGL
Canonical: https://ross.abutalabs.com/products/fabgl
Homepage: http://www.fabglib.org
Language: C++
License: NOASSERTION
License Family: other
Topics: esp32, graphics-library, game-engine, vt100, audio-engine, graphics-engine, gui, widget-library, vga, mouse, ps2, keyboard, sound, fabgl, audio, emulator, composite, ntsc, pal, terminal
Last push: 2025-02-27T08:49:40+00:00

## Health v2 (maintenance only)
Score: 26/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 8, release rhythm 8, longevity 100
- inputs: {"age_days": 2761, "days_push": 552, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1703, forks 254 (observed 2026-08-28T04:05:24.493588+00:00)

## What it is
FabGL is a C++ graphics and input library for the ESP32, providing display drivers for VGA, PAL/NTSC composite video, and I2C/SPI LCDs, plus PS/2 keyboard and mouse support. It also bundles an audio engine, a widget-based GUI, a game/emulation engine, and an ANSI/VT terminal emulator.

## Use cases
- render graphics on a VGA monitor from an ESP32
- build retro games or emulators on ESP32
- connect a PS/2 keyboard and mouse to ESP32 projects
- create a GUI with windows and widgets on small displays
- implement a VT100/ANSI terminal on ESP32 hardware
- generate multi-channel sound with DAC or sigma-delta output
- drive SSD1306, ST7789, or ILI9341 displays from ESP32

## When to choose
- you are building display, input, sound, or retro-computing projects on ESP32
- you need VGA or composite video output with sprites and double buffering
- you want an all-in-one library with GUI, terminal, audio, and game engine support

## When to avoid
- you are not targeting the ESP32 platform
- you need the latest ESP-IDF versions, which leave insufficient free memory for FabGL
- you require a permissive commercial-friendly license without contacting the author (GPL v3)

## Facets
- artifact type: library
- maturity: active
- function: graphics, game-engine, gui, audio-processing, terminal-ui, sdk
- domain: embedded-systems, graphics, hardware, developer-tools
- platform: embedded, cpp, cross-platform
- tags: esp32, vga, ps2-keyboard, ps2-mouse, vt100-terminal, composite-video, retro-computing, sprites, sound-engine, ssd1306, ili9341, st7789, game-development

## Member repositories
- fdivitto/FabGL (main) score 26

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:24.493588+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:37:37.653583+00:00, confidence not recorded.
  - readme: https://github.com/fdivitto/FabGL (fetched 2026-08-28T04:05:24.493588+00:00, sha 043d245046aa)
  - homepage: http://www.fabglib.org (fetched 2026-08-29T11:11:56.649480+00:00, sha 39e3851734c1)
- Data as of 2026-08-30T08:39:29.467469+00:00.
