API documentation is in the various subdirectories, e.g.
The code here is generally licensed as CC-BY (https://creativecommons.org/licenses/by/4.0/).
Attribution should be to Mary Holstege and include a link to the code base at http://mathling.com/code/
Some of the same data is based on WordNet 3.0® and is made available under that license (see
The noise code is a port of noise-rs which is used under an MIT License (see
The colour space conversion code is a port of hsluv-c which is used under an MIT License (see
The SDF code is based in part on code from Inigo Quilez which is used under an MIT License (see
The gradients are based gradient definitions from a variety of sources used under MIT and BSD Licenses (see
Bug fix to
rand:skewed(): incorrect calculation of standard deviation.
Bug fix to
rand:flip(): scaling error.
Reimplementation and API change to
rand:random-selection() to give more precise probability mapping.
Additional/cleaned-up randomizer tests: advice on optimizer flags for Saxon EE
util:rangeindex() + tests
Major refactoring of geospatial code, with some additional operations for splinning and reversing edges, among others. As a consequence of this a number of edge and path functions have shifted from
path.xqy in some cases with a slight renaming. Example:
geom:linear-edge-point is not
edge:linear-point. In addition a few functions have moved to
Handle error cases in
geom:inclination to define it as 90° not 0° when the points are the same.
geom:destination to avoid small round-off errors in Z values from inclination imprecision.
Add split tree and well-separated pair decomposition and spanning edges on WSPDs. (Depends on bug-fix in Saxon 10.6 to work.)
Add support for dithering of raw images.
Add support for complex numbers.
Add modules for signed distance function calculation, with various rendering and lighting calculations, with tests.
Add SVG gradient collection and module for manipulating SVG gradients.
Add permutation and combination calculations to
Slight refactoring of random distributions code to avoid tangled imports.
ε is now defined globally in
util:twixt will reorder out-of-order arguments.
Additions, extensions, and bug fixes to geometry code:
geo:region-intersectsbetween most region types
geo:region-containsbetween some region types
geo:shortest-distancefrom point to region
geo:bounding-circleof region (Weltz' algorithm)
geo:regionsedge following to construct polygons from edge graph
$EDGE-ENDin tiling code