From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id D66EE7EE4B for ; Wed, 25 Sep 2013 00:06:02 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=pra; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of daniel.buenzli@erratique.ch) identity=mailfrom; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="daniel.buenzli@erratique.ch"; x-conformance=sidf_compatible Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@smtp.webfaction.com) identity=helo; client-ip=74.55.86.74; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="daniel.buenzli@erratique.ch"; x-sender="postmaster@smtp.webfaction.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnQBAOkLQlJKN1ZKnGdsb2JhbABbgz+DIlm9OIE2DgEBAQEBCAsJCRQogjgXSgwZHAImAkkWG4d9BAiOTZtTkimBKYtWglKCbzWBAAOMUIxbhG8Ueo1x X-IPAS-Result: AnQBAOkLQlJKN1ZKnGdsb2JhbABbgz+DIlm9OIE2DgEBAQEBCAsJCRQogjgXSgwZHAImAkkWG4d9BAiOTZtTkimBKYtWglKCbzWBAAOMUIxbhG8Ueo1x X-IronPort-AV: E=Sophos;i="4.90,974,1371074400"; d="scan'208";a="27966352" Received: from mail6.webfaction.com (HELO smtp.webfaction.com) ([74.55.86.74]) by mail3-smtp-sop.national.inria.fr with ESMTP; 25 Sep 2013 00:06:01 +0200 Received: from [172.20.10.2] (55-226.197-178.cust.bluewin.ch [178.197.226.55]) by smtp.webfaction.com (Postfix) with ESMTP id 5F2D3215FD5F; Tue, 24 Sep 2013 22:05:58 +0000 (UTC) Date: Wed, 25 Sep 2013 00:07:03 +0200 From: =?utf-8?Q?Daniel_B=C3=BCnzli?= To: caml list Cc: =?utf-8?Q?T=C3=B6r=C3=B6k_Edwin?= , Anil Madhavapeddy , Jonathan Ludlam , David Scott Message-ID: <5E2F8E68C66E4CF2BAB7566B21FBE2FC@erratique.ch> X-Mailer: sparrow 1.6.4 (build 1178) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Subject: [Caml-list] [ANN] Gg 0.8.0 and Vg 0.8.0 Hello,=20=20 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.=20=20 My thanks to Edwin T=C3=B6r=C3=B6k who contributed the color conversion fun= ctions 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=20=20 and can be installed with: opam install gg vg # (SVG renderer only) opam install gg uutf otfm js_of_ocaml vg # (all renderers).=20=20 If you are eager to use the software and have the opam 1.1 beta installed= =20=20 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=20=20 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.=20=20 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. =46rom 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=20=20 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. =46rom 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=20=20 Documentation: http://erratique.ch/software/vg/doc/ github: https://github.com/dbuenzli/vg