Introduction #

Budo is a runtime for building graphical applications in JavaScript, TypeScript, Lua, or WebAssembly. You write a small project folder with a main file, and Budo runs it in a desktop window, exports it as a web page, or packages it for Android. Trusted native C projects are supported too, through a separate compile step.

Your code talks to the platform through one global object, sys. It gives you 2D canvas drawing, GPU shaders and 3D meshes, pointer, keyboard and touch input, audio and MIDI, SQLite databases, files, HTTP, sensors, and local AI inference with ONNX and llama.cpp models.

This documentation is for developers building apps with Budo. It opens with a tutorial, then covers each part of the platform in depth.

Where to begin #

Most code samples in these pages have a run button in their top-right corner. It runs the sample in your browser, using the web version of Budo, so you can try things before installing anything. The playground gives you the same runtime in an interactive editor.

When you are ready to work locally, read these pages in order:

  1. Installation puts the budo command on your machine.
  2. Getting started walks you through a first app: you create a project, draw and animate a shape, and make it follow the pointer.
  3. Project model explains how a project folder is organized: entrypoints, app.json, file paths, and capabilities.

The pages after that cover one topic each, such as drawing, shaders, input, data, audio, and packaging. The API reference lists every function and constant that Budo provides.