Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
freem
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Openai/6945f9bd-f198-8008-bb8c-1ab730279e5f
(section)
Add languages
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== ## === The Kolam Animator CSV format defines a sequence of drawing gestures. Each gesture represents a geometric primitive or control instruction. This revised specification extends all spatial coordinates from 2D (x, y) to 3D (x, y, z) to support true spatial modeling and rendering, including interpretation via 3D engines such as x3dom. ===== - If the z coordinate is omitted, it is implicitly taken as z = 0. ===== * Existing 2D CSV files remain valid under this specification. ==== All coordinates are expressed in a right-handed Cartesian coordinate system: ==== * x: horizontal axis * y: vertical axis * z: depth / layer / applicability axis Units are consistent and implementation-defined (e.g., pixels, millimeters, or abstract units). ==== Each row in the CSV represents a single gesture. Gestures are processed sequentially. ==== ===== Defines a single point in space. ===== Syntax <syntaxhighlight>Dot (x,y,z) </syntaxhighlight> Legacy syntax (still valid) <syntaxhighlight>Dot (x,y) </syntaxhighlight> Description * Places a point at the given spatial location. * Used for reference, snapping, or visualization. ===== Defines a straight line segment between two points. ===== Syntax <syntaxhighlight>Line (x1,y1,z1)(x2,y2,z2) </syntaxhighlight> Description * Draws a straight segment from the start point to the end point. * If consecutive gestures are connected, explicit Line gestures may be omitted. ===== Defines a quadratic Bézier curve. ===== Syntax <syntaxhighlight>Quadratic (x1,y1,z1)(x2,y2,z2)(xc,yc,zc) </syntaxhighlight> Parameters * (x1,y1,z1) – start point * (x2,y2,z2) – end point * (xc,yc,zc) – control point Description * Drawn using a single control point. * Suitable for smooth kolam turns and loops. ===== Defines a cubic Bézier curve drawn in counter-clockwise orientation. ===== Syntax <syntaxhighlight>Bezier (x1,y1,z1)(c1x,c1y,c1z)(c2x,c2y,c2z)(x2,y2,z2) </syntaxhighlight> Parameters * (x1,y1,z1) – start point * (c1x,c1y,c1z) – first control point * (c2x,c2y,c2z) – second control point * (x2,y2,z2) – end point ===== Defines a cubic Bézier curve drawn in clockwise orientation. ===== Syntax <syntaxhighlight>BezierCW (x1,y1,z1)(c1x,c1y,c1z)(c2x,c2y,c2z)(x2,y2,z2) </syntaxhighlight> Description * Identical geometry to Bezier, but with reversed winding. * Winding direction is significant for surface generation, filling, and 3D extrusion. ===== Defines a circle in space. ===== Syntax <syntaxhighlight>Circle (x,y,z)(d) </syntaxhighlight> Parameters * (x,y,z) – center of the circle * d – diameter Description * Represents a circular primitive. * A Break is implicitly applied before and after each Circle. * In 3D rendering, the circle lies in a plane normal to the z-axis unless otherwise specified. ===== Terminates the current gesture stream and starts a new path. ===== Syntax <syntaxhighlight>Break </syntaxhighlight> Description * Breaks continuity between gestures. * No coordinates are associated. * Used to separate independent kolam paths. ==== - Gestures are interpreted in sequence. ==== * Consecutive compatible gestures form a continuous path unless interrupted by Break. * Paths may exist in different z-layers, enabling layered or spatial kolam constructions. ==== - 2D renderers may ignore the z coordinate. ==== * 3D renderers (e.g., x3dom) may: - Use z for depth and occlusion - Apply lighting and shading - Allow rotation and inspection of the kolam as a spatial object ==== This CSV format records geometric intent, not merely drawings. ==== * The file describes points and curves in 3D space * Any 2D visualization is a projection * Kolam remains faithful to its traditional role as a planar expression of higher-dimensional structure ==== This xyz-based extension: ==== * Preserves the simplicity of the original Kolam Animator format * Enables true 3D representation and GPU acceleration * Provides a natural bridge to x3dom and future nDspace generalizations No existing kolam is invalidated. What was implicit is now explicit. If you wish, the next logical steps would be: * adding Plane and Box as optional higher-level primitives, or * defining a projection directive (e.g., View xy, View yz) within the CSV itself. Those can be layered on cleanly without altering this core specification.
Summary:
Please note that all contributions to freem are considered to be released under the Creative Commons Attribution-ShareAlike 4.0 (see
Freem:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)