Laravel Packages

Radiance: Generate Deterministic Mesh Gradient Avatars in PHP

Published
Radiance: Generate Deterministic Mesh Gradient Avatars in PHP image

Radiance is a PHP library by Tomás López that generates unique, deterministic mesh gradient avatars from any input string. Given the same seed, the library produces identical avatars every time, making it a practical choice for user profiles, identicons, and placeholder images.

The library requires PHP 8.2 or higher and can be installed via Composer:

composer require tomloprod/radiance

At its core, Radiance uses a fluent API for configuration. Here's a basic example that generates an SVG avatar:

radiance()
    ->seed('ericlbarnes')
    ->text('EB')
    ->baseColor('#f9332b')
    ->toSvg();

You can chain additional methods to customize the avatar's appearance:

radiance()
    ->seed('predmond@example.com')
    ->text('PR')
    ->size(128)
    ->baseColor('#f9332b')
    ->squircle()
    ->saturation(1.6)
    ->textShadow(2)
    ->toBase64();
Sample Circle Radiance Image Sample Squircle Radiance Image Sample Square Radiance Image
Sample Images generated by Radiance

The package offers multiple shape options, including circles, squircles (rounded squares), and squares. You can customize the output with text overlays that include automatic font resizing and shadow effects.

Radiance includes several configuration options for fine-tuning your avatars:

  • Shape and Size: Control dimensions and choose between circle(), square(), or squircle()
  • Colors: Set a baseColor() or use solidColor() for non-gradient outputs
  • Filters: Adjust saturation(), contrast(), and fadeDistance()
  • Text: Customize with fontFamily(), fontSizeRatio(), and textShadow()
  • Pixel Patterns: Add identicon-style overlays with pixelGridSize(), pixelOpacity(), pixelDensity(), and shape options

For output, the library supports both SVG generation via toSvg() and Base64 encoding with toBase64().

Radiance is built on top of Colority, another library by the same author for color manipulation.

You can explore the library with an interactive playground at radiance.tomloprod.dev and view the source code on GitHub.

Yannick Lyn Fatt photo

Staff Writer at Laravel News and Full stack web developer.

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Live Props for Real-Time Updates in Inertia.js v3.11 image

Live Props for Real-Time Updates in Inertia.js v3.11

Read article
Cooldown Dependency Policy now in Composer 2.11 image

Cooldown Dependency Policy now in Composer 2.11

Read article
Email Sending and Testing for Laravel in One Account image

Email Sending and Testing for Laravel in One Account

Read article
Decide with Jev: Tie Every AI Check to the Exact Draft image

Decide with Jev: Tie Every AI Check to the Exact Draft

Read article
PIE 1.5 Changes PHP Extension Installs in CI image

PIE 1.5 Changes PHP Extension Installs in CI

Read article
Delete Expired Sessions in Laravel With a Scheduled Command image

Delete Expired Sessions in Laravel With a Scheduled Command

Read article