For developers

Use a hosted SVG URL
or download the code.

Studio provides a public SVG endpoint and a TypeScript package for each generator. The package can be rendered locally, modified, tested, and self-hosted.

Hosted SVG →TypeScript package →
01

Hosted SVG

Use the generator as an image URL.

Publish the generator in Studio, add any URL-safe input to its address, and use the returned SVG anywhere an image is supported.

Example generated for the input alice
Elephantsalice
HTML
<img src="https://studio.seedstone.xyz/plugins/d2ab9803-c412-423b-81a6-058f399ea607/alice.svg" alt="Generated image">
URL example
https://studio.seedstone.xyz/plugins/d2ab9803-c412-423b-81a6-058f399ea607/alice.svg
  • Works in HTML, CSS, Markdown, email, and native web views
  • Cross-origin enabled and safely sandboxed
  • Cached deliveries do not spend hosted-render allowance
02

TypeScript package

Download the generator code.

The package includes source, types, rendering helpers, controls, and repeatability tests.

Install
$ npm install seedstone @your-scope/seedstone-generator
main.ts
import { create } from "seedstone";
import { yourGenerator } from "@your-scope/seedstone-generator";

const view = create(yourGenerator, "#identity", "alice");

view.update("bob");
view.destroy();
Local renderingRender in your application without a request to Seedstone Studio.
Source includedRead, change, test, and deploy it with your own stack.
Repeatability testThe package tests representative inputs for consistent output.

Runtime API

Mount and update a generator.

The `seedstone` runtime mounts a generator, updates its input, applies variation controls, and releases renderer resources.

create(generator, target, input)

Mount an SVG, Canvas, WebGL, or custom renderer.

view.update(input)

Resolve a new identity without remounting the view.

view.setOverrides()

Pin values or keep variation inside a controlled range.

view.destroy()

Release the renderer and any resources it owns.

Variation controls
const view = create(yourGenerator, "#identity", "alice", {
  overrides: {
    palette: "night",
    density: seeded(4, 8),
  },
});

view.setOverrides({ palette: "solar" });

API naming

Terms used in the code.

Plugin
The contract implemented by a visual generator.
Seed
The input string. The same seed produces the same configuration and image.
Traits
The typed properties that may vary, such as hue, geometry, or density.

For the full API and implementation details, visit the Seedstone repository.

View on GitHub ↗