All Projects → feenkcom → sparta

feenkcom / sparta

Licence: MIT license
Sparta is a canvas on top of Skia.

Programming Languages

smalltalk
420 projects

Projects that are alternatives of or similar to sparta

blend2d-python
Cython wrapper for Blend2D
Stars: ✭ 13 (-53.57%)
Mutual labels:  vector-graphics
awesome-pharo-ml
List of projects, books, booklets, papers, and applications related to machine learning, AI, data science in Pharo
Stars: ✭ 56 (+100%)
Mutual labels:  pharo
ReStoreForPharo
Relational database persistence for Pharo objects
Stars: ✭ 29 (+3.57%)
Mutual labels:  pharo
vec
Vector graphics software to generate HPGL output to drive a plotter
Stars: ✭ 19 (-32.14%)
Mutual labels:  vector-graphics
PharoJS
PharoJS: Develop in Pharo, Run on JavaScript
Stars: ✭ 90 (+221.43%)
Mutual labels:  pharo
Im2Vec
[CVPR 2021 Oral] Im2Vec Synthesizing Vector Graphics without Vector Supervision
Stars: ✭ 229 (+717.86%)
Mutual labels:  vector-graphics
kendrick
Domain-Specific Modeling for Epidemiology
Stars: ✭ 43 (+53.57%)
Mutual labels:  pharo
ScalaTIKZ
ScalaTIKZ is an open-source library for PGF/TIKZ vector graphics.
Stars: ✭ 18 (-35.71%)
Mutual labels:  vector-graphics
iconvg
IconVG is a compact, binary format for simple vector graphics: icons, logos, glyphs and emoji.
Stars: ✭ 626 (+2135.71%)
Mutual labels:  vector-graphics
Python3Generator
A toolkit to generate Python 3 source code from Pharo.
Stars: ✭ 25 (-10.71%)
Mutual labels:  pharo
Pharo-SQLite3
Community-owned official SQLite3 binding for Pharo
Stars: ✭ 19 (-32.14%)
Mutual labels:  pharo
Willow
The Web Interaction Library that eases the burden of creating AJAX-based web applications
Stars: ✭ 41 (+46.43%)
Mutual labels:  pharo
TinyVG
A new format for vector graphics: Tiny vector graphics
Stars: ✭ 35 (+25%)
Mutual labels:  vector-graphics
Winter
Winter is a 2D game engine for Pharo Smalltalk
Stars: ✭ 43 (+53.57%)
Mutual labels:  pharo
Gratch
Block-style programming environment for tackling graph structure and graph algorithm, based on MIT Scratch.
Stars: ✭ 15 (-46.43%)
Mutual labels:  pharo
Telescope
Telescope is an engine for efficiently creating meaningful visualizations
Stars: ✭ 26 (-7.14%)
Mutual labels:  pharo
sdk
TinyVG software development kit
Stars: ✭ 135 (+382.14%)
Mutual labels:  vector-graphics
iPharo
Pharo Smaltalk kernel for Jupyter
Stars: ✭ 32 (+14.29%)
Mutual labels:  pharo
ModernUI
Modern desktop framework from low-level 3D graphics API to high-level view model, for development of 2D/3D rendering software or game engine, with internationalization support and many new technologies.
Stars: ✭ 168 (+500%)
Mutual labels:  vector-graphics
texfig
Utility to generate PGF vector files from Python's Matplotlib plots to use in LaTeX documents.
Stars: ✭ 58 (+107.14%)
Mutual labels:  vector-graphics

Sparta

Sparta is an almost stateless vector graphics API for Pharo that provides bindings to the Skia rendering backend.

Install

More detailed installation guide is described in INSTALL.md

Sparta requires an extra Skia vm plugin. The plugin for the current OS and VM (64 bit) is downloaded and installed automatically together with all needed packages.

Metacello new
    baseline: 'Sparta';
    repository: 'github://feenkcom/sparta/src';
    load

Overview

(All images are rendered using Sparta in Glamorous Toolkit)

"Sparta" string rendered with applied neon filter

Backends

Skia, and as result Sparta, has support of native OS graphic engines, as well as cross platform ones.

On all platforms Sparta provides support of Cairo and Skia. Additionally, high performant CoreGraphics and CoreGraphics Accelerated on Mac OS and Direct2D on Windows. In total Sparta supports 5 different rendering backends.

Text

One of the biggest improvements compared to existing graphics engines from Pharo is advanced high quality text rendering with multi-language support.

Multilanguage support in Sparta

The current Pharo text rendering engines draw a piece of text with one concrete font and style. If the font does not have an appropriate character, a stub glyph will be rendered instead. Sparta introduces a notion of font groups that allow us to achieve a smooth fallback font detection based on the selected font style, language and missing glyphs. Fallback font support requires more complex text measurement, as multiple fonts faces are involved to render a single piece of text.

Filters

Since Sparta is based on the Moz2D backend that was designed for web browsers, we can get support for a wide variety of filter primitives. Sparta provides an ability to compose multiple filter primitives to get a single, advanced filter. For example, with the help of ColorMatrix and TableTransfer filters we can simulate some popular Instagram-like filters, for example Nashville, Inkwell or Brannan.

Instagram-like filters implemented with Sparta

Basic drawings

We should not forget that first of all Sparta is a vector graphics engine. It allows developers to create, fill and stroke custom paths and shapes. Together with gaussian blur, we can achieve astonishing results that were not possible before.

Basic vector graphics in Sparta

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].