| Name | Roll Number |
|---|---|
| Aryamaan Jain | 2019121002 |
| Jyoti Sunkara | 2018101044 |
| Ammar Ahmed | 2018101058 |
| Aman Goel | 2018101005 |
To generate tangles from a grammar and a set of geometric, grouping and decorative operators in a seamless manner.
In the implementation shapes are arbitrary two dimensional polygons with holes, where their boundaries are represented as highly-tessellated closed curves.
The core idea is that all the grammar operators work on groups of shapes, both in input and output. We aim to use code to represent tangle grammars which explicitly express the grouping information of every shape, in a way that this information is directly accessible and modifiable by specific operators.
We aim to code the compact set of operators that are efficient, closed under any set of arbitrary shapes, and that are able to encode a wide amount of variations in the generated tangles as proposed in the paper. There are several operators that work on the grammar and they are broadly divided into three types:
-
Grouping operators: Grouping between the drawn shapes, rearranging them in a meaningful manner, that can also be independent from the step at which such shapes were created.
- Ungroup operator : Takes all shapes in S and assigns a new group id to each one.
- Regroup operator: Rearranges the shapes of a selected group into multiple newly created groups
-
Geometric operators: Subdivide shape groups by splitting, outlining and placing objects in them.
- Regular Split
- Geometric Outline
- Streamline Split
- Shape Placement
-
Decorative operators: Modify the final appearance of a shape, without further subdivisions.
- Filling: Sets the background color of a shape
- Stippling: Stipples the shape with geometrical details like dots, dashes, curves
Simulating the organic feel of our generated tangles by applying a perturbation for all subdivided shapes.
Tangles are a form of structured two dimensional art characterized by repeating, recursive patterns. The aim is to procedurally generate realistic tangle drawings controlled by users using a shape grammar.
The tangles are formally modelled with group grammars that explicitly handle the grouping of shapes necessary to represent tangle repetitions. A small set of expressive geometric, grouping and decorative operators are used to show that they can respectively express complex tangles patterns and sub-pattern distributions, with relatively simple grammars. We aim to validate the results of the paper which shows how group grammars can produce a wide variety of patterns in a few seconds which on the flip side would take artists hours of tedious and time consuming work.
The code will be written for the processing of grammars and operators will be written in Python, the grammars and shapes will be represented using JSON in a readable manner, and all tangles for both input and output will be created in the SVG format.
The proposed ideas in the paper regarding the grammars, operators and shape perturbation required to make artictic tangles will be implemented.
A system that is able to generate tangles automatically, starting from any initial set of shapes. This tool can be used for the automatic generation of an organic looking tangle.
| Milestone | Date |
|---|---|
| Proposal Submission | 20 October 2020 |
| Literature review | 22 October 2020 |
| Structuring the grammar | 24 October 2020 |
| Parsing rules from JSONs | 26 October 2020 |
| Grouping Operators | 29 October 2020 |
| Mid Project Evaluation | 31 October 2020 |
| Geometric Operators | 3 November 2020 |
| Decorative Operators | 6 November 2020 |
| Shape Perturbation | 9 November 2020 |
| Testing And Creating Tangles | 12 November 2020 |
| Final Project Evaluation | 19 November 2020 |
A dataset of grammars to generate the tangles is required for the implementation of the proposed algorithm.
A set of output images is required to show the possible tangles generated by the program.
Since this dataset is not available online, we plan to contact the authors as a the first option. In the event that this does not succeed we will synthesise the shapes and grammars in a random fashion as JSON files.