AIFlow-Math-Ink-0.5 / assets /architecture.svg
cwLeeDev's picture
Release AIFlow Math Ink 0.5 geometric gridding layer
b9c7f6c verified
|
Raw
History Blame Contribute Delete
5.63 kB
<svg xmlns="http://www.w3.org/2000/svg" width="1400" height="760" viewBox="0 0 1400 760" role="img" aria-labelledby="title desc">
<title id="title">AIFlow Math Ink 0.5 geometric gridding pipeline</title>
<desc id="desc">Ordered pen strokes become boxes, adaptive geometric relations, connected components, and clean formula cell images for an external recognizer.</desc>
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#071426"/>
<stop offset="1" stop-color="#102844"/>
</linearGradient>
<filter id="shadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="10" stdDeviation="12" flood-color="#000" flood-opacity=".28"/>
</filter>
<marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto">
<path d="M0 0L12 6L0 12Z" fill="#7dd3fc"/>
</marker>
<style>
.title{font:700 42px system-ui,sans-serif;fill:#f8fafc}
.subtitle{font:400 19px system-ui,sans-serif;fill:#a9bfd6}
.box{fill:#112f4d;stroke:#5bc0eb;stroke-width:2}
.box2{fill:#173b35;stroke:#5ee6a8;stroke-width:2}
.label{font:700 21px system-ui,sans-serif;fill:#f8fafc}
.copy{font:400 15px system-ui,sans-serif;fill:#c9d8e6}
.mini{font:600 14px ui-monospace,monospace;fill:#8ce4ff}
.arrow{stroke:#7dd3fc;stroke-width:4;fill:none;marker-end:url(#arrow)}
.stroke{stroke:#f8fafc;stroke-width:7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.bbox{fill:none;stroke:#fbbf24;stroke-width:2;stroke-dasharray:7 5}
.edge{stroke:#5ee6a8;stroke-width:3;opacity:.85}
</style>
</defs>
<rect width="1400" height="760" rx="28" fill="url(#bg)"/>
<text x="70" y="82" class="title">AIFlow Math Ink 0.5</text>
<text x="70" y="118" class="subtitle">Deterministic stroke geometry → recognizer-ready formula cells</text>
<g filter="url(#shadow)">
<rect class="box" x="65" y="185" width="250" height="390" rx="22"/>
<text class="label" x="90" y="225">1 · Online strokes</text>
<text class="copy" x="90" y="254">ordered (x, y), width, stable ID</text>
<path class="stroke" d="M112 330 C135 285 153 376 177 328"/>
<path class="stroke" d="M196 330 L245 330"/>
<path class="stroke" d="M205 295 L236 295"/>
<path class="stroke" d="M205 365 L236 365"/>
<path class="stroke" d="M116 468 L175 468"/>
<path class="stroke" d="M201 440 L201 500 M178 470 L226 470"/>
<text class="mini" x="90" y="545">No raster OCR yet</text>
<rect class="box" x="395" y="185" width="250" height="390" rx="22"/>
<text class="label" x="420" y="225">2 · Geometry graph</text>
<text class="copy" x="420" y="254">scale-adaptive boxes and edges</text>
<rect class="bbox" x="436" y="294" width="58" height="68"/>
<rect class="bbox" x="516" y="315" width="84" height="26"/>
<rect class="bbox" x="530" y="275" width="48" height="25"/>
<rect class="bbox" x="530" y="356" width="48" height="25"/>
<circle cx="465" cy="328" r="8" fill="#5ee6a8"/>
<circle cx="558" cy="328" r="8" fill="#5ee6a8"/>
<circle cx="554" cy="288" r="8" fill="#5ee6a8"/>
<circle cx="554" cy="368" r="8" fill="#5ee6a8"/>
<path class="edge" d="M473 328L546 328M558 320L554 296M558 336L554 360"/>
<text class="mini" x="420" y="430">baseline · attachment</text>
<text class="mini" x="420" y="459">fraction · delimiter bridges</text>
<text class="copy" x="420" y="523">median stroke height sets scale</text>
<rect class="box" x="725" y="185" width="250" height="390" rx="22"/>
<text class="label" x="750" y="225">3 · Components</text>
<text class="copy" x="750" y="254">disjoint-set union + stable order</text>
<rect x="765" y="294" width="170" height="110" rx="16" fill="#17475c" stroke="#5ee6a8" stroke-width="3"/>
<circle cx="800" cy="335" r="13" fill="#5ee6a8"/>
<circle cx="850" cy="335" r="13" fill="#5ee6a8"/>
<circle cx="900" cy="335" r="13" fill="#5ee6a8"/>
<path class="edge" d="M813 335L837 335M863 335L887 335"/>
<rect x="765" y="445" width="170" height="70" rx="16" fill="#17475c" stroke="#5ee6a8" stroke-width="3"/>
<circle cx="815" cy="480" r="13" fill="#5ee6a8"/>
<circle cx="885" cy="480" r="13" fill="#5ee6a8"/>
<path class="edge" d="M828 480L872 480"/>
<text class="mini" x="750" y="548">component → formula cell</text>
<rect class="box2" x="1055" y="185" width="280" height="390" rx="22"/>
<text class="label" x="1080" y="225">4 · Clean cell images</text>
<text class="copy" x="1080" y="254">RGB crops for an external model</text>
<rect x="1090" y="290" width="210" height="115" rx="12" fill="#fff"/>
<path d="M1122 350C1145 305 1163 390 1187 345" stroke="#111827" stroke-width="7" fill="none" stroke-linecap="round"/>
<path d="M1210 347L1270 347M1220 315L1260 315M1220 380L1260 380" stroke="#111827" stroke-width="7" fill="none" stroke-linecap="round"/>
<rect x="1090" y="435" width="210" height="75" rx="12" fill="#fff"/>
<path d="M1130 473L1190 473M1230 448L1230 498M1205 473L1255 473" stroke="#111827" stroke-width="7" fill="none" stroke-linecap="round"/>
<text class="mini" x="1080" y="548">PIL.Image.Image[]</text>
</g>
<path class="arrow" d="M325 380H380"/>
<path class="arrow" d="M655 380H710"/>
<path class="arrow" d="M985 380H1040"/>
<rect x="65" y="640" width="1270" height="62" rx="16" fill="#091a2e" stroke="#294b68"/>
<text class="copy" x="90" y="678">Boundary: this repository stops at cell images. No OCR model, weights, tokenizer, prediction, or training data is included.</text>
</svg>