Flexipy
Industries · Services · Products

Products · In production since 2025

XBuilder

An AI takeoff platform for construction estimating. It reads a PDF floor plan and returns structured quantities — rooms with areas and perimeters, openings with widths and heights, dimension chains and building sections — which an estimator exports as CSV or JSON and bids from, instead of measuring the drawing by hand.

What was technically hard

A language model returns plausible JSON, not a schema. Plans name their levels inconsistently, quote dimensions in whatever the drafter used, and omit fields entirely, so nothing from the model is trusted directly: every number is coerced before it becomes a row, levels are derived from the floor map rather than read off the labels, and every room and opening carries its own confidence score. An estimator prices a bid off these figures, so a wrong number that looks certain is far worse than one marked uncertain.

How it's built

Django and DRF on PostgreSQL, with Celery running the extraction and Redis behind the queue. The PDF goes to OpenAI as a file and the response is parsed against a prompt template chosen per model, with three retries and exponential backoff. Progress is written to the plan row and pushed to the browser over Centrifugo, so a long extraction shows movement rather than a spinner. Every plan is scoped to an organisation at the queryset and permission layer.

One decision we made, and why

We send the PDF to the model as a file rather than rasterising it first. Converting to images would have given us control over resolution, but every conversion step costs detail a drawing depends on — hairlines, dimension text, hatching — and those are precisely what the extraction has to read.

Building something in Dev Tech?

The same failure modes, and what we do about them in your domain.

What breaks in Dev Tech →
start-project.sh

$ tell us what you're building and where it's stuck

Book a 30-min discovery call

We reply within one business day.

Let's talk about your build

Pick a time, or leave a note and we'll reply within one business day.

Stanislav Rybonka · Founder & Principal Engineer

Pick a time →
or write to us