diff --git a/content/_index.md b/content/_index.md index 600e0ec..f954806 100644 --- a/content/_index.md +++ b/content/_index.md @@ -5,13 +5,9 @@ type: docs # p5.quadrille.js -[p5.js](https://p5js.org/) [quadrille](https://en.wikipedia.org/wiki/Square_tiling) open source library designed for implementing various [puzzle video games](https://en.wikipedia.org/wiki/Puzzle_video_game) and conducting visual computing experiments. +[p5.quadrille.js](https://github.com/objetos/p5.quadrille.js) is an open-source [p5.js](https://p5js.org/) library tailored for students, visual artists, and game designers. It supports the creation of puzzle and board games and the exploration of visual algorithms. Anchored in the [quadrille](https://en.wikipedia.org/wiki/Square_tiling) concept, which is fundamental to numerous graphics applications, the library opens avenues for crafting traditional grid-based games and exploring algorithmic visuals from color data-based sorting to software-based image processing and rasterization. -In geometry, the square-tiling, square-tessellation or square-grid is a regular tiling of the Euclidean plane. [John Horton Conway](https://en.wikipedia.org/wiki/John_Horton_Conway) called it a quadrille. - -The internal angle of the square is π/2 so four squares at a point make a full 2π angle. It is one of three regular tilings of the plane. The other two are the [triangular-tiling](https://en.wikipedia.org/wiki/Triangular_tiling) and the [hexagonal-tiling](https://en.wikipedia.org/wiki/Hexagonal_tiling). - -The library comprises a `Quadrille` class and provides [p5 functions]({{< ref "p5_functions" >}}) to manipulate instances of it, even allowing to [customize the quadrille tiling]({{< ref "draw_quadrille#display-functions" >}}). The `Quadrille` class supports several read / write [properties]({{< ref "properties" >}}) and implements geometry [transforms]({{< ref "transforms" >}}), [algebra]({{< ref "algebra" >}}) inspired by [constructive solid geometry](https://en.wikipedia.org/wiki/Constructive_solid_geometry), and [visual computing]({{< ref "visual_algorithms" >}}) methods such as image filtering using [convolution matrices](https://en.wikipedia.org/wiki/Kernel_%28image_processing%29) and [triangle rasterization](https://fgiesen.wordpress.com/2013/02/06/the-barycentric-conspirac/). It also implements several [accessor]({{< ref "accessors" >}}) and [mutator]({{< ref "mutators" >}}) methods, such as [clear]({{< ref "clear" >}}), [clone]({{< ref "clone" >}}), [fill]({{< ref "fill" >}}), [insert]({{< ref "insert" >}}) and [replace]({{< ref "replace" >}}) among others. It can be used as an interface to convert to / from other representations such as [arrays](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array), [images](https://p5js.org/reference/#/p5.Image) and [bitboards](https://en.wikipedia.org/wiki/Bitboard). +The core of the library is the `Quadrille` class, which, together with a suite of [p5.js functions]({{< ref "p5_functions" >}}), facilitates manipulation and customization of the quadrille visual appearance through [display functions]({{< ref "draw_quadrille#display-functions" >}}). This class contains both immutable and mutable [properties]({{< ref "properties" >}}), enabling geometric [transformations]({{< ref "transforms" >}}), [algebraic operations]({{< ref "algebra" >}}) inspired by [constructive solid geometry](https://en.wikipedia.org/wiki/Constructive_solid_geometry), and intricate [visual algorithms]({{< ref "visual_algorithms" >}}) such as image filtering with [convolution matrices](https://en.wikipedia.org/wiki/Kernel_%28image_processing%29) and [triangle rasterization](https://fgiesen.wordpress.com/2013/02/06/the-barycentric-conspirac/). It also offers a variety of [accessor]({{< ref "accessors" >}}) and [mutator]({{< ref "mutators" >}}) methods like [clear]({{< ref "clear" >}}), [clone]({{< ref "clone" >}}), [fill]({{< ref "fill" >}}), [insert]({{< ref "insert" >}}), and [replace]({{< ref "replace" >}}) for detailed control of the quadrille. Moreover, the library supports conversion between quadrille instances and [other data formats]({{< ref "reformatter" >}}), such as [arrays](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array), [images](https://p5js.org/reference/#/p5.Image), and [bitboards](https://en.wikipedia.org/wiki/Bitboard). The library reference which illustrates most of its functionality is found along this site.