caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Daniel Bünzli" <daniel.buenzli@erratique.ch>
To: caml list <caml-list@inria.fr>
Cc: "Török Edwin" <edwin@etorok.net>,
	"Anil Madhavapeddy" <Anil.Madhavapeddy@cl.cam.ac.uk>,
	"Jonathan Ludlam" <Jonathan.Ludlam@eu.citrix.com>,
	"David Scott" <Dave.Scott@eu.citrix.com>
Subject: [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0
Date: Wed, 25 Sep 2013 00:07:03 +0200	[thread overview]
Message-ID: <5E2F8E68C66E4CF2BAB7566B21FBE2FC@erratique.ch> (raw)

Hello,  

It's my pleasure to announce the first releases of:

* Gg, a module providing basic types for computer graphics
* Vg, a declarative 2D vector graphics library.

More on these and their aim at the end of the message.  

My thanks to Edwin Török who contributed the color conversion functions
in Gg and helped with color science questions.

Besides, while I can trace my work on Vg to at least 2008 it would
still remain unreleased without the sponsorship of both Citrix Systems R&D
and OCaml Labs. Many thanks to them and to the inspiring OCaml
Cambridgian atmosphere.

Comments are welcome,

Daniel


# Note on installing

Once opam 1.1 is released, the packages will be in opam's repository  
and can be installed with:

  opam install gg vg    # (SVG renderer only)
  opam install gg uutf otfm js_of_ocaml vg    # (all renderers).  

If you are eager to use the software and have the opam 1.1 beta installed  
you can get them through my unreleased software repo:

  opam repo add erratique-u http://erratique.ch/software/opam/unreleased
  opam upgrade
  opam install gg uutf otfm js_of_ocaml vg

these packages will be removed from erratique-u once they are in the  
opam repository.


# Gg

Gg is an OCaml module providing basic types for computer graphics. It
defines types and functions for floats, vectors, points, sizes,
matrices, quaternions, axis-aligned boxes, colors, color spaces, and
raster data.

Gg is made of a single, independent, module and distributed under the
BSD3 license.  

The aim of Gg is to provide an efficient, immutable, C friendly, type
infrastructure for computer graphics programming. It's neither a
general purpose linear algebra package nor a computational geometry
library. I hope it can serve as a minimal common ground for other
graphics libraries to exchange data without having to depend on each
other.

From an API point of view the library is considered mostly
complete. The only thing that could still change significantly is the
support for representing raster data (Gg.raster), in any case,
consult the documentation which clarifies what may still change.

Home page: http://erratique.ch/software/gg  
Documentation: http://erratique.ch/software/gg/doc/Gg
github: https://github.com/dbuenzli/gg


# Vg

Vg is an OCaml module for declarative 2D vector graphics. In Vg,
images are values that denote functions mapping points of the
cartesian plane to colors. The module provides combinators to define
and compose these values.

Renderers for PDF, SVG and the HTML canvas are distributed with the
module. An API allows to implement new renderers.

Vg depends only on Gg. The SVG renderer has no dependency, the PDF
renderer depends on Uutf and Otfm, the HTML canvas renderer depends on
js_of_ocaml. Vg and its renderers are distributed under the BSD3
license.

The aim of Vg is to provide a low-level, declarative, composable and
semantically precise vector graphics abstraction that can be used with
multiple rendering backends. Vg is made of pure OCaml code and is thus
easy to install wherever the compiler decided to bring you.

The basics section of the documentation can be read as tutorial
introduction:

  http://erratique.ch/software/vg/doc/Vg#basics

The distribution has a database of sample images that serve both as a
test suite to compare the output of different rendering backends and
as a learning tool to see how images are defined in Vg. Thanks to
js_of_ocaml it can be browsed online here:

  http://erratique.ch/software/vg/demos/rhtmlc.html

You can get to the definition of an image by clicking on the image's
title.

From an API point of view the library is not expected to change much;
in any case the documentation clarifies what may still change. In the
future besides general backend improvements and support for a raster
image primitive, plans for the library include a pure software
rasterizer backend, an OpenGL backend and other needed improvements
around text rendering.

Take care to consult the backends documentation to be aware of their
current limitations. Do not hesitate to bug me if a particular
limitation is important to you as it may help me to direct my
efforts.

Home page: http://erratique.ch/software/vg  
Documentation: http://erratique.ch/software/vg/doc/
github: https://github.com/dbuenzli/vg


             reply	other threads:[~2013-09-24 22:06 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-24 22:07 Daniel Bünzli [this message]
2013-09-25  7:01 ` David MENTRE
2013-09-25  8:49   ` Daniel Bünzli
2013-09-25  9:24     ` Daniel Bünzli
2013-09-30 13:50 ` Goswin von Brederlow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5E2F8E68C66E4CF2BAB7566B21FBE2FC@erratique.ch \
    --to=daniel.buenzli@erratique.ch \
    --cc=Anil.Madhavapeddy@cl.cam.ac.uk \
    --cc=Dave.Scott@eu.citrix.com \
    --cc=Jonathan.Ludlam@eu.citrix.com \
    --cc=caml-list@inria.fr \
    --cc=edwin@etorok.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).