Advanced Search
Search Results
48 total results found
Household Stuff
Tech Stuff
TatML
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" ambiguityPattern validation - catch impossible joins before you start tattin...
TatML User Guide
TatML Getting Started Tutorial
Welcome to TatML! This tutorial will walk you through creating your first tatting pattern using TatML markup language.
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
TatML Language Specification v0.1.2
TatML (Tatting Markup Language) is a domain-specific language for describing tatting lace patterns with precise element identification and join notation.
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...