# Bottts Bottts is a robot-themed vector avatar style with modular bot heads built from swappable faces, mouths, antennas, side units, and textures. Generate fun, technical profile icons for developer tools, AI apps, and API services. - **Style name:** `bottts` - **Category:** Characters - **Animated:** no - **Creator:** Pablo Stanley (https://twitter.com/pablostanley) - **Source:** https://bottts.com/ - **License:** Free for personal and commercial use (https://bottts.com/) ## Usage Every library below produces the same SVG for the same seed and options. HTTP API: ``` https://api.dicebear.com/10.x/bottts/svg?seed=John ``` JavaScript: ``` npm install @dicebear/core @dicebear/styles --save ``` ```js import { Style, Avatar } from '@dicebear/core'; import definition from '@dicebear/styles/bottts.json' with { type: 'json' }; const style = new Style(definition); const avatar = new Avatar(style, { seed: 'John' }); const svg = avatar.toString(); ``` PHP: ``` composer require dicebear/core dicebear/styles ``` ```php 'John']); $svg = (string) $avatar; ``` Python: ``` pip install dicebear-core dicebear-styles ``` ```python from importlib.resources import files from dicebear import Avatar, Style style = Style.from_json( files("dicebear_styles").joinpath("bottts.json").read_text("utf-8") ) avatar = Avatar(style, {"seed": "John"}) svg = avatar.to_string() ``` Rust: ``` cargo add dicebear-core serde_json cargo add dicebear-styles --features bottts ``` ```rust use dicebear_core::{Avatar, Style}; use serde_json::json; let style = Style::from_str(dicebear_styles::BOTTTS)?; let avatar = Avatar::new(&style, json!({ "seed": "John" }))?; let svg = avatar.to_svg(); ``` Go: ``` go get github.com/dicebear/dicebear-go/v10 go get github.com/dicebear/styles/v10 ``` ```go import ( dicebear "github.com/dicebear/dicebear-go/v10" "github.com/dicebear/styles/v10" ) style, _ := dicebear.NewStyle([]byte(styles.Bottts)) avatar, _ := dicebear.NewAvatar(style, map[string]any{"seed": "John"}) svg := avatar.SVG() ``` Dart: ``` dart pub add dicebear_core dicebear_styles ``` ```dart import 'package:dicebear_core/dicebear_core.dart'; import 'package:dicebear_styles/bottts.dart'; final style = Style.parse(bottts); final avatar = Avatar(style, {'seed': 'John'}); final svg = avatar.svg; ``` CLI: ``` npm install --global dicebear ``` ``` dicebear bottts ``` ## Presets 12 ready-made option sets for this style. Each is a plain set of render options: pass it to any of the libraries or send it as HTTP-API query parameters. You do not need to install anything for them, and any option a preset leaves out keeps varying with the seed. - **Bare:** No background, no surface texture. - **Sepia:** A brass robot on tanned paper. - **Greyscale:** Bare metal, four steps of grey. - **Duotone:** One indigo shell on a pale indigo wall. - **Muted:** An earthy shell instead of the bright one. - **Electric:** Acid shells on near black. - **Pastel Wall:** Five soft backgrounds, the shell untouched. - **Bold Pop:** Saturated backgrounds behind a saturated shell. - **Night Shift:** Near black behind, a glowing shell in front. - **Sunrise:** A warm gradient behind, the shell untouched. - **Full Cast:** Every robot gets the surface texture. - **Close Up:** Scaled in on the face plate, for small avatars. The full option set of each one is at https://www.dicebear.com/styles/bottts/presets/index.md. ## Options Every option below works in all libraries and as a query parameter of the HTTP API. The ones built from a component name (`Variant`, `Probability`) or from a color group (`Color`, `ColorFill`, `ColorFillStops`, `ColorAngle`, `ColorOrder`) belong to this style; the rest are [core options](https://www.dicebear.com/guides/core-options/) that every style accepts. | Option | Type | Values | | --- | --- | --- | | `seed` | string | | | `size` | number | 1 to 4096 | | `idRandomization` | boolean | | | `title` | string | | | `flip` | enum (array allowed) | `none`, `horizontal`, `vertical`, `both` | | `fontFamily` | string (array allowed) | | | `fontWeight` | number (array allowed) | 1 to 1000 | | `scale` | range | 0 to 10 | | `borderRadius` | range | 0 to 50 | | `rotate` | range | -360 to 360 | | `translateX` | range | -1000 to 1000 | | `translateY` | range | -1000 to 1000 | | `eyesVariant` | enum (array allowed) | `bulging`, `dizzy`, `eva`, `frame1`, `frame2`, `glow`, `happy`, `hearts`, `robocop`, `round`, `roundFrame01`, `roundFrame02`, `sensor`, `shade01` | | `eyesProbability` | number | 0 to 100 | | `headVariant` | enum (array allowed) | `round01`, `round02`, `square01`, `square02`, `square03`, `square04` | | `headProbability` | number | 0 to 100 | | `mouthVariant` | enum (array allowed) | `bite`, `diagram`, `grill01`, `grill02`, `grill03`, `smile01`, `smile02`, `square01`, `square02` | | `mouthProbability` | number | 0 to 100 | | `sidesVariant` | enum (array allowed) | `antenna01`, `antenna02`, `cables01`, `cables02`, `round`, `square`, `squareAssymetric` | | `sidesProbability` | number | 0 to 100 | | `textureVariant` | enum (array allowed) | `camo01`, `camo02`, `circuits`, `dirty01`, `dirty02`, `dots`, `grunge01`, `grunge02` | | `textureProbability` | number | 0 to 100 | | `topVariant` | enum (array allowed) | `antenna`, `antennaCrooked`, `bulb01`, `glowingBulb01`, `glowingBulb02`, `horns`, `lights`, `pyramid`, `radar` | | `topProbability` | number | 0 to 100 | | `baseColor` | color (array allowed) | Hex color, `#` optional | | `baseColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `baseColorFillStops` | range | | | `baseColorAngle` | range | -360 to 360 | | `baseColorOrder` | enum | `random`, `fixed` | | `backgroundColor` | color (array allowed) | Hex color, `#` optional | | `backgroundColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `backgroundColorFillStops` | range | | | `backgroundColorAngle` | range | -360 to 360 | | `backgroundColorOrder` | enum | `random`, `fixed` | The same table is available as JSON at `https://api.dicebear.com/10.x/bottts/options.json`, and the raw definition at `https://api.dicebear.com/10.x/bottts/definition.json`.