ghjfgj,.mbn

Use case · Figma → Flutter

The only Figma→Flutter pipeline that
measures its own output.

Every other tool in this space generates code and stops — you find out whether it actually matches the design by running it, eyeballing it, and patching by hand. InkPal closes the loop. It runs your app, pixel-diffs the rendered output against the Figma source, and keeps refining until the gap closes.

Figma source
Figma source design
Generated Flutter
Generated Flutter output
Launch screen. Pixel match 77% at generate-time. After inkpal_figma_converge, typical runs close to 92%+. Real numbers from our benchmark/, not marketing claims.

Architecture

Six stages. One loop.

Deterministic pipeline. No LLM calls from inside the engine — every ambiguous decision is surfaced as structured data for your AI agent to reason over.

01

Import & audit

A–F grade before you generate

Fetches the Figma file, scores it on 7 dimensions (auto-layout coverage, named components, text styles, Variables, prototype links, breakpoints). Returns grade + structured fix list. Gate conversions on require_grade='B' in CI.

02

IR pipeline

5 passes over the node tree

Figma JSON → IR tree → visibility-filter, icon-flatten, wrapper-collapse, autolayout-synthesis, semantic-detect. Auto-escalates between DEFAULT_PASSES and FULL_PASSES based on absolute-positioning ratio.

03

Semantic detection

Heuristic + name-hint cross-validation

Dimensional heuristic classifies buttons/chips/textfields/cards by geometry + fills. A second pass matches layer names (/btn|cta|input|card/i) and boosts confidence on agreement, flags disagreement in ambiguous_nodes[] for the caller's LLM to resolve.

04

Theme + chrome + routes

One-shot project scaffolding

Emits lib/theme/app_colors.dart + app_typography.dart from the design tokens. Wraps screen-sized output in Scaffold + SafeArea. Writes lib/router/app_routes.dart from Figma prototype links. Detects your state framework (Riverpod/BLoC/Provider/GetX) and returns a wrapper_hint for the caller.

05

Emit

All 157 MCP tools share the same engine

CSS-to-Flutter emitter with feature flags for Tailwind class hinting, Google Fonts resolution, RichText spans, trig-based gradient alignment, Material widget semantic emission. Deduplicates repeated components. Returns the Dart file + a polish_hints[] block so your agent can extract sub-widgets, consolidate decorations, reference theme colors.

06

Converge (the moat)

Nobody else has this

Runs your Flutter app, screenshots via inkpal_bridge, pixel-diffs against the Figma PNG, identifies worst regions, tries alternate IR strategies, reloads sources via VM Service, re-measures. Stops on convergence, stuck detection, or iteration cap. Safety caps keep runs under 2 min.

The moat

Generate. Measure. Refine. Repeat.

Most Figma→Flutter tools are one-shot. They emit code, you pray it renders. InkPal runs a convergent loop through inkpal_bridge so the pipeline can see what it actually produced — pixel by pixel — and correct course.

loop 1..5:
  regenerate Dart with strategy[n]           # default/flex → full/flex → …/stack → full/stack
  VM-service reloadSources                   # Flutter hot-reloads
  bridge.screenshot()                        # live render, PNG
  regional-diff vs Figma PNG (8×6 grid)     # per-cell Δ
  if Δ < target or stuck:   break            # converged, or <0.5pp improvement over 2 iters
  else:                      next strategy
report: iterations[], best_match_pct, worst_regions, worst_figma_nodes

Every competitor could copy the deterministic pipeline. None can copy this loop without shipping their own runtime plugin with pub.dev adoption — and we have a two-year head start.

How it compares

Feature parity matters less than capability parity. Here's what the market actually offers today.

CapabilityLocofyAnimaClaude/GPTInkPal
Paste Figma URL → runnable screen
Audit file quality before converting
A–F grade + fix suggestions
IR-optimized widget tree
Theme extraction (AppColors + AppTypography)
State framework detection + wiring hint
Route stubs from prototype links
Runtime pixel-diff vs Figma source
Iterative refinement (convergence)
Prototype flow verification
Structured output for caller's LLM
Published Dart bridge (pub.dev)

Methodology: based on publicly documented features as of 2026-04-24. Each tool's published docs + a hands-on test on the same Figma file. We'll publish the shared-file leaderboard once the benchmarks finish running.

5-minute first run

Run it on your Figma file.

Free Dev tier gives you a starter tool set and 2 FABRICATE screens a month. No credit card required.