Projects / Box


Box is a programming language that puts special emphasis on graphics. It is intended to be for vector graphics what LaTeX is for writing scientific documents.


Recent releases

  •  07 Sep 2013 17:46

    Release Notes: The core of the Box VM has been rewritten. The type system has been rewritten from scratch and is now much more powerful. A new type, Any, allows boxing/unboxing objects and provides some reflection capabilities. This release adds adds heterogeneous arrays of objects (Array object), a new undo manager to the GUI which allows having a single undo history for both the text editor and the graphics editor, and the new objects Curve, Tri, and Fill to draw cubic bezier splines and fill a path. The GUI now supports "direction points" to simplify drawing and interacting with bezier curves via the Curve object.

    •  27 Jun 2012 21:07

      Release Notes: This release focuses on improvements to the documentation system, which was largely rewritten to be clearer and to support new features. In particular, it is now possible to specify a preview for a documented object: this is a piece of Box source code which is rendered as an image in the documentation browser. It is also possible to organize documentation in sub-sections and document instances. Bugs were fixed in both Box and Boxer. Steps were made to support converting Box code to C code and to support serialization/deserialization of Box programs (both features are not completed).

      •  25 Apr 2012 22:16

        Release Notes: This release brings usability improvements to the graphical user interface and the compiler. Improvements to the GUI are include optimized screen space utilization, and box scripts that are executed from their own parent directory, which allows saving (or loading) images easily from files in the script's directory. A bug in Dox where documentation of subtypes was not shown was fixed. The compiler was improved with subtype inheritance for alias types (X = Y inherits the subtypes of Y). A development utility was added for automatically performing a large number of regression tests. Save, Resolution, and Ppi objects were added.

        •  27 Mar 2012 23:15

          Release Notes: New features: multi-line, recursive comments a la OCaml; a new file format with macros to control the definition of reference points (this allows including Boxer sources inside other sources); and a new Image object to include external PNG files and use them as patterns for filling areas. New library elements: Figure (Figure[...] replaces Window[][...]), ThickLine, Dark, and Axes. Species are fully implemented. The documentation browser has been fixed to deal with species. Rendering of non-concentric spherical gradients has been fixed. There is improved error message reporting. Example files in Boxer have been cleaned up.

          •  28 Nov 2011 23:24

            Release Notes: The main focus of this release has been to fix bugs in both the compiler and the GUI. Small improvements were also made. For Box, BBox now sets (rather than extending) the bounding box. The way the bounding box was handled in the Clip command was fixed. Improvements were made in the memory management of Box. Handling of FillStyle was fixed (it was ignored by Style). For Boxer, the Box output view was fixed: it did not expand correctly with some versions of PyGTK. Some small improvements were made in the documentation browser.

            Recent comments

            12 Aug 2008 03:43 billposer

            interesting - somewhat like pic
            This is interesting and looks promising. It looks rather like a development of pic.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.