Advanced Search
Search Results
39 total results found
Introduction
TatML (Tatting Markup Language) is designed to solve the precision problems in traditional tatting notation. It provides: Precise picot referencing - no more "join to previous picot" ambiguity Pattern validation - catch impossible joins before you start ta...
Getting Started
Your First Pattern Here's a simple ring and chain pattern in TatML: pattern "My First Pattern" { thread: size20, white shuttles: 1 ring1: R(6, p, 6, p, 6) chain1: C(8, join(ring1.picot1), 8, p, 8) ring2: R(4, join(chain1.picot1...
Basic Syntax
Pattern Structure Every TatML file starts with a pattern declaration: pattern "Pattern Name" { // Metadata (optional) thread: size20, white shuttles: 1 // Pattern elements ring1: R(6, p, 6) chain1: C(8, p, 8) } Comments ...
Elements Reference
Rings Basic ring syntax: ring1: R(stitches, p, stitches, p, stitches) Examples: // Simple ring ring1: R(6, p, 6, p, 6) // Ring with named picots ring2: R(4, p:join_here, 4, p:tip, 4) // Ring with small picots ring3: R(5, sp, 5, p, 5, sp, 5) Chain...
Advanced Features
Multi-Shuttle Patterns pattern "Two Shuttle Example" { shuttles: 2 shuttle1 { ring1: R(5, p, 5, p, 5) chain1: C(6, p, 6) } shuttle2 { ring2: R(4, join(ring1.picot1), 4, p, 4) chain2: C(8, joi...
Troubleshooting
Common Errors Duplicate Elements Element ring1 already defined Each element needs a unique ID Use descriptive names: center_ring, petal1, etc. Undefined Picot Element ring2 only has 2 picots, cannot access picot3 Count your picots carefully Remem...
Getting Help
Check the TatML Specification for detailed syntax rules Run validation to catch errors early Use descriptive element names and comments
Overview
TatML (Tatting Markup Language) is a domain-specific language for describing tatting lace patterns with precise element identification and join notation. Design Goals Eliminate ambiguity in picot references Enable pattern validation Support human readabi...
Lexical Elements
Keywords These are what are called reserved words, which means you can't use these as your variable names (you can use the letter "p" but you can't use p on its own as the name for something because that's how TatML knows you're referring to a picot. patter...
Grammar Rules
Pattern Structure Pattern := "pattern" String "{" PatternBody "}" PatternBody := Import* Metadata* Element* Import := "import" String "as" Identifier Metadata := ThreadSpec | ShuttleSpec | DifficultySpec Element := Assignment | Control | Block | PatternUs...
Semantic Rules
Element Identification All rings and chains must have unique identifiers within pattern scope Identifiers follow pattern: elementtype + number (e.g., ring1, chain2) Custom names allowed: center_ring, petal_chain Pattern Import System import "path/to...
Validation Rules
Structural Validation All referenced elements must exist All referenced picots must exist on target element No circular references in join chains Thread path must be continuous across pattern boundaries Import Validation Imported files must exist a...
Standard Library
Built-In Functions join(reference) // Basic join to picot join(ref1, ref2) // Multi-point join reverse_work // Change thread direction join_to_start // Close pattern loop use pattern_name // Insert pattern r...
Pattern Composition
Simple Pattern Reference import "./motifs/basic_flower.tatml" as flower pattern "Garden" { motif1: use flower motif2: use flower // Connect motifs chain1: C(5, join(motif1.ring1.picot2), 5, join(motif2.ring1.picot1), 5) } Patter...
Error Handling
Import Errors File not found Invalid TatML in imported file Circular import dependencies Pattern name conflicts Reference Errors Undefined pattern references Invalid cross-pattern element access Connection point mismatches
Examples
Reusable Motif Definition // File: motifs/flower_center.tatml pattern "Flower Center" { thread: size20 center_ring: R(4, p:n, 4, p:ne, 4, p:e, 4, p:se, 4, p:s, 4, p:sw, 4, p:w, 4, p:nw, 4) } Pattern Using Motifs // File: garden_doily.tatml...
Implementation Notes
Parser Requirements Module system for import resolution Symbol table with namespace support Cross-reference validation Dependency graph management Pattern Library Management File system integration Pattern caching Version compatibility checking ...
Quick Reference
Basic Pattern Structure pattern "Pattern Name" { thread: size20, white shuttles: 1 element_id: ELEMENT_TYPE(stitches) } Elements Element Syntax Example Ring R(stitches, p, stitches) ring1: R(6, p, 6, p, 6) Chain...
Before You Begin
What You'll Learn By the end of this tutorial, you'll know how to: Write basic TatML patterns Use precise picot referencing Validate patterns for errors Generate text instructions and diagrams Prerequisites Basic understanding of tatting (rings, c...
Tutorial 1: Your First Ring
Let's start with the simplest possible pattern - a single ring. Step 1: Create the Pattern File Create a new file called first_ring.tatml: pattern "My First Ring" { thread: size20, white shuttles: 1 ring1: R(6, p, 6, p, 6) } Step 2: U...