Today I’m releasing Spark for Unity, a Unity package that brings the Spark texture codecs to the Unity engine. It’s available now on GitHub and it’s free for projects with lifetime revenue under $100K.
Unity’s built-in runtime texture compression is CPU-bound, limited in format support, and often too slow for real-time use cases. Spark for Unity brings GPU-native texture compression to Unity, making it practical to compress textures at runtime in real-time.
Texture2D compressed = Spark.EncodeTexture(source, SparkFormat.RGB);
That single line takes an existing texture and produces a standard Texture2D in a GPU-native format (BC7 or ASTC depending on the device), ready to assign to a material. It runs entirely on the GPU, at least an order of magnitude faster than Unity’s Texture2D.Compress, and produces higher quality results.

The package works across all Unity render pipelines (URP, HDRP, and Built-in) without modification. It’s been tested on Metal (macOS, iOS), Vulkan (Android, Windows), OpenGL ES 3.1 (Android), and Direct3D (Windows), on Unity versions 6.3 to 6.6.
If you want to see it running, the demo app is available for iOS, Android, macOS, and Windows.
