Skip to main content

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

Optional dependencies

Needed to find fonts, fallbacks on FreeFont otherwise.

on the mac:

Inspirations

  • sauvage by S. Conversy

  • SVGL by S. Conversy & J.-D. Fekete

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seagull-0.1.tar.gz (34.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page