[squeak-dev] Vector Graphics (was: Pi performance fun)

Jeff Gonis jeff.gonis at gmail.com
Tue May 28 19:19:53 UTC 2013


Hi Everyone,

Regarding vector graphics in squeak I believe that VPRI has been
experimenting with Nile and Gezira as a method of getting compact
vector graphics into their "Frank" system.

Bert released packages that can be used to generate a VM with support
for Nile and Gezira, and I have use these to compile one.  I was able
to play around and experiment with nicely anti-aliased graphics while
developing in the live style that I enjoy so much.

I also grabbed a Pharo VM and played with Athens a bit this morning.

So my gut would say that there are two choices before us: Adopt the
work that Pharo is doing with Athens, or go with the VPRI Gezira work.
 Below is a list of (IMO) pros and cons for each approach.  I would be
curious what other people think.

Pros for Athens:
- Relies on Cairo which is developed by a large outside group
- Cairo appears to be relatively high performance
- PDF support allows for easily printable image/document creation
- Has dedicated development from the Pharo community

Cons for Athens:
- Cairo is pretty complex if we want to ever patch or fix anything
- Relies on NativeBoost enabled VMs which are not the VMs that Eliot
provides and I believe these need pharo specific image-side code at
this point

Pro for Gezira:
- Very small and compact logic, does have ramp up time but would be
much easier to modify than ~100,000 lines of cairo code
- Used by VPRI for "Frank" so it is being used in a system of complexity
- Seemed to have a pretty decent API from what I could understand

Cons for Gezira:
- At this point the product of one man (Dan Amelang) or possibly one
research group (VPRI)
- Unknown performance relative to other libraries like Cairo.  Maybe
Bert can chime in here.
- Unknown support for PDF and other image types.
- Diverges from Pharo, so could split the community unnecessarily.

Anyway, I think that getting high quality vector graphics in Squeak
would be a fantastic boon, as Squeak is such a graphical environment
and live coding with Morphs is great right up until you see chunky
aliased lines on your canvas.

Thanks for your time,
Jeff


More information about the Squeak-dev mailing list