# Adding pictures and sounds to a project [Programming guides](README.md) An asset is a file your program uses, such as a picture or a sound. Packaging these files with the project helps the program find them on another computer. | English call | Canonical ID | Returns | |---|---|---| | `showImage(asset)` | `media.showImage` | `None` | | `playSound(asset)` | `media.playSound` | `None` | `asset` is non-empty `Text` naming a project-relative reference such as `"assets/background.png"`. The language runtime emits a media command; the host resolves the packaged asset and never exposes arbitrary file access to source code. Images use the full scene as a retained background. Portable project images support bounded PNG, JPEG, and GIF decoding where the host implements image media. `playSound` is part of the language/runtime event surface, but the current native compiler rejects it as an unsupported target capability rather than silently removing it. The desktop project importer currently accepts WAV, MP3, OGG, and M4A audio as well as PNG, JPEG, and GIF images. A packaged project asset is currently limited to 12 MiB. These are project and host limits, not additional source syntax. Media source uses project-relative references under `assets/`: ```text showImage("assets/landscape.png") showSprite("hero", "assets/hero-1.png", 100, 220, 48, 64) ``` Use a `.bipli` project to package assets. Programs cannot use these calls to read arbitrary files or URLs. ## Related entries [Syntax and values](../syntax/README.md) · [Built-ins](../builtins/README.md) · [Programming guides](README.md)