caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0
@ 2013-09-24 22:07 Daniel Bünzli
  2013-09-25  7:01 ` David MENTRE
  2013-09-30 13:50 ` Goswin von Brederlow
  0 siblings, 2 replies; 5+ messages in thread
From: Daniel Bünzli @ 2013-09-24 22:07 UTC (permalink / raw)
  To: caml list
  Cc: Török Edwin, Anil Madhavapeddy, Jonathan Ludlam, David Scott

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0
  2013-09-24 22:07 [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0 Daniel Bünzli
@ 2013-09-25  7:01 ` David MENTRE
  2013-09-25  8:49   ` Daniel Bünzli
  2013-09-30 13:50 ` Goswin von Brederlow
  1 sibling, 1 reply; 5+ messages in thread
From: David MENTRE @ 2013-09-25  7:01 UTC (permalink / raw)
  To: Daniel Bünzli
  Cc: caml list, Török Edwin, Anil Madhavapeddy,
	Jonathan Ludlam, David Scott

Hello,

2013/9/25 Daniel Bünzli <daniel.buenzli@erratique.ch>:
> 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

I only see a black web page. Tested with Firefox 24 and IE 9 on Windows 7.

http://erratique.ch/software/vg/demos/sqc.html works with Firefox 24.

Best regards,
david

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0
  2013-09-25  7:01 ` David MENTRE
@ 2013-09-25  8:49   ` Daniel Bünzli
  2013-09-25  9:24     ` Daniel Bünzli
  0 siblings, 1 reply; 5+ messages in thread
From: Daniel Bünzli @ 2013-09-25  8:49 UTC (permalink / raw)
  To: David MENTRE; +Cc: caml list

Le mercredi, 25 septembre 2013 à 09:01, David MENTRE a écrit :
> I only see a black web page. Tested with Firefox 24  

Thanks for reporting.

That's odd, on linux too apparently. It fails with "too much recursion" while on osx with firefox 23/24 everything's fine. It seems the culprit is this constant string definition (a font program):

https://github.com/dbuenzli/vg/blob/master/db/open_sans.ml

I tried to define the string as a concatenation of smaller pieces but it still doesn't work. Can maybe a js_of_ocaml expert suggest something ?  

> and IE 9 on Windows 7.
I no longer have my IE vms, will try to have a look next time I have client work that needs to deal with those.  

Best,

Daniel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0
  2013-09-25  8:49   ` Daniel Bünzli
@ 2013-09-25  9:24     ` Daniel Bünzli
  0 siblings, 0 replies; 5+ messages in thread
From: Daniel Bünzli @ 2013-09-25  9:24 UTC (permalink / raw)
  To: David MENTRE; +Cc: caml list

Le mercredi, 25 septembre 2013 à 10:49, Daniel Bünzli a écrit :
> I tried to define the string as a concatenation of smaller pieces but it still doesn't work. Can maybe a js_of_ocaml expert suggest something ?

In fact the culprit is not the constant. It's the monadic style in the decoding of the font's horizontal metrics by Otfm.  
  
Daniel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0
  2013-09-24 22:07 [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0 Daniel Bünzli
  2013-09-25  7:01 ` David MENTRE
@ 2013-09-30 13:50 ` Goswin von Brederlow
  1 sibling, 0 replies; 5+ messages in thread
From: Goswin von Brederlow @ 2013-09-30 13:50 UTC (permalink / raw)
  To: caml-list

On Wed, Sep 25, 2013 at 12:07:03AM +0200, Daniel Bünzli wrote:
> 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.

You need longer, more descriptive names.

MfG
	Goswin

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-30 13:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-24 22:07 [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0 Daniel Bünzli
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

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).