Document:minnie
Author:bsp
Date:04-Aug-2025

1 About

alt
minnie is a 2D / 2.5D vector graphics API with a simplified OpenVG / SVG like feature subset, distributed under terms of the MIT license.
The renderer processes a size optimized byte stream (.mib) which is either generated on-the-fly in RAM, read from flash / mass storage, or converted from a human-readable ASCII file format (.min), which in turn can be converted from SVG files.
The core target runtime consists of a single C++ header file (minnie.h) which can optionally be linked with the SGI tesselator to support complex concave paths with holes (even-odd fill rule).
Triangle rendering is performed with an antialiased software rasterizer which can be replaced by GPU acceleration as required.

2 Table of Contents

3 Formats

3.1 ASCII file format (.min)

3.2 Size-optimized binary stream format (.mib)

3.3 SVG file size comparison

sizeSVG namesizeminnie namesize factor
4189cake.svg622test018_cake_aa.mib1:7
31681wild-boar.svg5284test039_wildboar.mib1:6
6828valentines.svg1514test033_valentines.mib1:5
1478bicycle.svg358test035_bicycle.mib1:4
42352crab.svg6425test036_crab.mib1:7
96719tiger.svg17135test040_tiger.mib1:6
20743elefant.svg1811test043_elefant.mib1:11
SVG file size comparison

4 Features

4.1 Fill / clear

4.2 Paths

4.2.1 Path elements

4.2.2 SVG paths

4.3 Path instancing

Once declared, paths may be rendered an arbitrary number of times.
Paths are always translated to the current cursor position, and may optionally be transformed by the current 2D or 3D matrix beforehand.
Each path instance can be assigned an individual stroke width and line join / cap style and stroke or fill color.

4.3.1 No matrix transformation

4.3.2 2D matrix transformation

4.3.3 3D matrix transformation

4.4 Clipping

4.4.1 Clip to framebuffer

4.4.2 Clip to path

4.5 Filled and stroked rendering

4.6 Color palettes

4.7 Stencil masking

4.8 Framebuffers

4.9 Blits

5 Opcode reference

Binary stream format for .mib files and procedural buffers.

5.1 Stream header byte

The first byte in a .mib stream is the header byte (def=0x01)

5.2 0x01

5.3 0x02

5.4 0x03

5.5 0x04

5.6 0x05

5.7 0x0E

5.8 0x0F

5.9 0x10 .. 0x1F

5.10 0x20

5.11 0x21

5.12 0x22

5.13 0x23

5.14 0x24

5.15 0x25

5.16 0x26

5.17 0x27

5.18 0x28

5.19 0x29

5.20 0x2A

5.21 0x2B

5.22 0x2C

5.23 0x2D

5.24 0x2E

5.25 0x2F

5.26 0x30 .. 0x36

5.27 0x37

5.28 0x38 .. 0x3E

5.29 0x3F

5.30 0x40 .. 0x4D

5.31 0x4E

5.32 0x4F

5.33 0x50

5.34 0x51

5.35 0x52

5.36 0x53

5.37 0x54

5.38 0x55

5.39 0x56

5.40 0x57 .. 0x5D

5.41 0x5E

5.42 0x5F

5.43 0x60

5.44 0x61

5.45 0x62

5.46 0x63

5.47 0x64

5.48 0x65 .. 0x6F

5.49 0x70 .. 0x7F

5.50 0x80

5.51 0x81

5.52 0x82

5.53 0x83

5.54 0x84

5.55 0x85

5.56 0x86

5.57 0x87

5.58 0x88

5.59 0x89

5.60 0x8A

5.61 0x8B

5.62 0x8C

5.63 0x8D

5.64 0x8E

5.65 0x8F

5.66 0x90

5.67 0x91

5.68 0x92

5.69 0x93

5.70 0x94

5.71 0x95

5.72 0x96

5.73 0x97

5.74 0x98

5.75 0x99

5.76 0x9A

5.77 0x9B

5.78 0x9C .. 0x9D

5.79 0x9E

5.80 0x9F

5.81 0xA0

5.82 0xA1

5.83 0xA2

5.84 0xA3

5.85 0xA4

5.86 0xA5

5.87 0xA6

5.88 0xA7

5.89 0xA8

5.90 0xA9 .. 0xAF

5.91 0xB0

5.92 0xB1

5.93 0xB2

5.94 0xB3

5.95 0xB4 .. 0xBF

5.96 0xC0 .. 0xCF

5.97 0xD0

5.98 0xD1

5.99 0xD2

5.100 0xD3

5.101 0xD4

5.102 0xD5

5.103 0xD6 .. 0xDF

5.104 0xE0

5.105 0xE1

5.106 0xE2

5.107 0xE3

5.108 0xE4

5.109 0xE5

5.110 0xE7

5.111 0xE8

5.112 0xE9

5.113 0xEA

5.114 0xEB

5.115 0xEC

5.116 0xED

5.117 0xEE

5.118 0xEF

5.119 0xF0 .. 0xFD

5.120 0xFE

5.121 0xFF

6 Render backends

7 License

Distributed under terms of the MIT license (https://opensource.org/licenses/MIT)
Copyright 2018-2025 by bsp

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
MIT license

Valid HTML 4.01 Transitional

Document created in 38ms on 04-Aug-2025 23:02:36