2D scene graph based on SVG with OpenGL backend
Project description
a 2D scene graph based on SVG with OpenGL backend
Goals & non-goals
Goals:
2D scene graph suitable for interactive rendering
minimal set of dependencies
Non-goals:
full SVG implementation
optimized for speed
Features
pythonic API modeled after SVG spec & semantic
SVG parsing and serialization
scale dependent polygonalization
analytical picking
sub-pixel strokes rendering enhancement through width and opacity correction
per-pixel gradients
two modes text rendering: raster by freetype2 for high quality AA at small sizes, vector otherwise
SVG spec
implemented:
shapes: path, rect, circle, ellipse, line, polyline, polygon, image
text: (excluding decoration, text on path)
structure: group, use (including attributes inheritance)
painting: solid color, linear and radial gradients (including units, transform, spread, href);
fill: rule (nonzero, evenodd)
stroke: cap (butt, round, square), join (miter, round, bevel), miterlimit
multi-pass rendering: clipping, masking, object opacity
transforms: translate, rotate, scale, skewX, skewY
eventually:
tspan
painting: pattern
stroke: dash, marker
filters
never:
DOM API
Dependencies
PyOpenGL 3.0.2+ OpenGL python bindings
Pillow 2+ Python Imaging Library (fork)
freetype2 font engine
GNU FreeFont Free UCS Outline Fonts
Optional dependencies
Needed to find fonts, fallbacks on FreeFont otherwise.
on the mac:
pyobjc-framework-CoreText wrappers for the framework CoreText on Mac OS X
Inspirations
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.