# Open Peeps Open Peeps is a hand-drawn vector avatar style of diverse half-body characters with sketchy outlines, mix-and-match hair, expressions, and accessories. Generate friendly SVG profile icons for community platforms, marketing pages, and social apps. - **Style name:** `open-peeps` - **Category:** Characters - **Animated:** no - **Creator:** Pablo Stanley (https://twitter.com/pablostanley) - **Source:** https://www.openpeeps.com/ - **License:** CC0 1.0 (https://creativecommons.org/publicdomain/zero/1.0/) ## Usage Every library below produces the same SVG for the same seed and options. HTTP API: ``` https://api.dicebear.com/10.x/open-peeps/svg?seed=John ``` JavaScript: ``` npm install @dicebear/core @dicebear/styles --save ``` ```js import { Style, Avatar } from '@dicebear/core'; import definition from '@dicebear/styles/open-peeps.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("open-peeps.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 open-peeps ``` ```rust use dicebear_core::{Avatar, Style}; use serde_json::json; let style = Style::from_str(dicebear_styles::OPEN_PEEPS)?; 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.OpenPeeps)) 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/open_peeps.dart'; final style = Style.parse(openPeeps); final avatar = Avatar(style, {'seed': 'John'}); final svg = avatar.svg; ``` CLI: ``` npm install --global dicebear ``` ``` dicebear open-peeps ``` ## 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 accessories or masks. - **Sepia:** One warm brown for skin, hair and shirt. - **Greyscale:** No color anywhere, skin included. - **Duotone:** Three steps of one indigo and nothing else. - **Muted:** Dusty clothing and natural hair, nothing shouts. - **Electric:** Shirts turned up to full saturation. - **Pastel Wall:** Five soft backgrounds, everything else untouched. - **Bold Pop:** Saturated backgrounds, loud on purpose. - **Night Shift:** Deep slate behind, light shirts in front. - **Sunrise:** A warm gradient behind, everything else untouched. - **Full Cast:** Accessories, facial hair and masks turned up. - **Close Up:** Scaled in on the face, for small avatars. The full option set of each one is at https://www.dicebear.com/styles/open-peeps/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 | | `accessoriesVariant` | enum (array allowed) | `eyepatch`, `glasses`, `glasses2`, `glasses3`, `glasses4`, `glasses5`, `sunglasses`, `sunglasses2` | | `accessoriesProbability` | number | 0 to 100 | | `expressionVariant` | enum (array allowed) | `angryWithFang`, `awe`, `blank`, `calm`, `cheeky`, `concerned`, `concernedFear`, `contempt`, `cute`, `cyclops`, `driven`, `eatingHappy`, `explaining`, `eyesClosed`, `fear`, `hectic`, `lovingGrin1`, `lovingGrin2`, `monster`, `old`, `rage`, `serious`, `smile`, `smileBig`, `smileLOL`, `smileTeethGap`, `solemn`, `suspicious`, `tired`, `veryAngry` | | `expressionProbability` | number | 0 to 100 | | `facialHairVariant` | enum (array allowed) | `chin`, `full`, `full2`, `full3`, `full4`, `goatee1`, `goatee2`, `moustache1`, `moustache2`, `moustache3`, `moustache4`, `moustache5`, `moustache6`, `moustache7`, `moustache8`, `moustache9` | | `facialHairProbability` | number | 0 to 100 | | `headVariant` | enum (array allowed) | `afro`, `bangs`, `bangs2`, `bantuKnots`, `bear`, `bun`, `bun2`, `buns`, `cornrows`, `cornrows2`, `dreads1`, `dreads2`, `flatTop`, `flatTopLong`, `grayBun`, `grayMedium`, `grayShort`, `hatBeanie`, `hatHip`, `hijab`, `long`, `longAfro`, `longBangs`, `longCurly`, `medium1`, `medium2`, `medium3`, `mediumBangs`, `mediumBangs2`, `mediumBangs3`, `mediumStraight`, `mohawk`, `mohawk2`, `noHair1`, `noHair2`, `noHair3`, `pomp`, `shaved1`, `shaved2`, `shaved3`, `short1`, `short2`, `short3`, `short4`, `short5`, `turban`, `twists`, `twists2` | | `headProbability` | number | 0 to 100 | | `maskVariant` | enum (array allowed) | `medicalMask`, `respirator` | | `maskProbability` | number | 0 to 100 | | `clothingColor` | color (array allowed) | Hex color, `#` optional | | `clothingColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `clothingColorFillStops` | range | | | `clothingColorAngle` | range | -360 to 360 | | `clothingColorOrder` | enum | `random`, `fixed` | | `headContrastColor` | color (array allowed) | Hex color, `#` optional | | `headContrastColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `headContrastColorFillStops` | range | | | `headContrastColorAngle` | range | -360 to 360 | | `headContrastColorOrder` | enum | `random`, `fixed` | | `inkColor` | color (array allowed) | Hex color, `#` optional | | `inkColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `inkColorFillStops` | range | | | `inkColorAngle` | range | -360 to 360 | | `inkColorOrder` | enum | `random`, `fixed` | | `skinColor` | color (array allowed) | Hex color, `#` optional | | `skinColorFill` | enum (array allowed) | `solid`, `linear`, `radial` | | `skinColorFillStops` | range | | | `skinColorAngle` | range | -360 to 360 | | `skinColorOrder` | 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/open-peeps/options.json`, and the raw definition at `https://api.dicebear.com/10.x/open-peeps/definition.json`.