Workflo Don Florencio Email me

Built to order · New York & New Jersey

Websites,
automation,
live data and 3D

Client websites, sales and workflow automation, live data maps, AI phone tools, 3D product viewers and browser games, built by one person. Most of it opens in one click, so you can judge the work rather than the pitch.

All of it custom code. No page builders, no templates.

One minuteSix things to open, one line each

If you only have a minute

  • Client · site and outreach desk 512 Capital Partners

    An Austin advisory firm's site, then its outreach desk: the sending domain authenticated by DNS query, 502 organisations researched down to 228 verified addresses, a CRM built and loaded, and a do-not-send gate on every batch.

    Open the live site
  • Live product · post.workflohq.com PostFlo

    A small business's week of social posts in one sitting: drafted for thirteen networks, stopped when a caption breaks the owner's own rules, published only after the owner approves it from their phone.

    See PostFlo
  • Client forum · live since September Vorkt News

    A reader forum on Discourse for a daily news digest. The owner's morning email turns into story cards on its own, the forum mail is authenticated on a domain of its own, and running it costs him no more time than the email already did.

    Open the live site
  • Custom software · tested on real packets Grant Office

    Checks a nonprofit's grant application against the funder's published rules before anyone submits it. On a real nonprofit's October packets it caught 26 of the 31 mistakes the team had found by hand, and raised no false alarms on 12 live packets.

    Take the tour
  • Client site · own domain Velvet A. Johnson-Ross

    Eight pages for a New York housing policy consultant: her CV, her public record and her 2021 testimony reproduced in full, in light and dark, with no framework and no monthly fee to keep it alive.

    Open the live site
  • Custom software · getting paid Collections Desk

    Gets a small business paid for work it already did: terms in writing, the invoice, reminders in the owner's words, a Zelle payment noticed from the bank's email, and a demand letter when a client goes quiet. The owner approves and sends every message.

    Take the tour
Live

FeaturedOne build, with the film

PostFlo

Live product · post.workflohq.com ·

Runs a small business's social media. It drafts a week of posts for 13 networks, shows each one in that network's own posting screen, and publishes only what the owner approves from their phone. Comments and messages from every account land in one inbox.

Every post is checked against the business's own rules before it goes anywhere. A draft that names a price the owner never wants posted is stopped until it comes out, and nothing is scheduled, approved or published while a rule fails.

An agency running several businesses sees all of them on one screen, and each client sees only their own.

What I doRange and stack

What I can build

Eight things I have shipped, not eight things I have read about. Every one of them points at something on this page you can open and poke at.

Sites a business can stand behind

Storefronts, booking pages, service sites. Custom code, so they load fast on a phone and nobody pays a monthly fee to keep them alive. See Velvet A. Johnson-Ross, 512 Capital Partners, Jess Fillyo and Grim Reaper Gardens.

Sales and workflow automation

An outreach desk that researches a list, qualifies it and loads the CRM before anyone picks up the phone. A client's week of social posts on one calendar, approved from their phone before anything goes out. Reminders that fill a cancelled chair, a board that shows which leads are going stale, the report somebody retypes every Monday. See 512 Capital Partners, PostFlo, Sales Floor Board and No-Show Saver.

3D products and web AR

A real model in the page instead of a photo shoot: change the fabric with no reload, then stand the thing in your own room from a phone browser, with no app to install. See Holloway and Barham.

Live data, fetched and drawn

Public data pulled on load and turned into something readable, with the colours and the axes chosen on purpose. Sometimes that data is moving: Trains Now decodes the MTA's realtime feed and Docks Now reloads every fifteen seconds.

Voice and phone interfaces

A page that listens, answers out loud, and knows when to stop talking and take the booking. See Night Desk.

Real time simulation

Physics on nearly a million cells at sixty frames a second in a browser tab, with heat, fire and chemistry running between the materials. See Granulab, and Vivarium under Games.

Multiplayer over a socket

Room codes, a server that holds the truth, and two people in different houses watching the same board move. See Ant Raid.

Apps that work with no signal

Installed to a phone home screen, opening offline, keeping your progress on the device instead of on somebody else's server. See FALA.

The stack, by name

Plain HTML, CSS and JavaScript wherever that is enough, which is most of the time. The rest of what this page runs on, named so it can be searched for:

Languages
JavaScript, TypeScript, Python, SQL, HTML and CSS
Front end
React and Next.js, Tailwind, Three.js and WebGL, Canvas 2D and WebAudio, model-viewer with glTF and USDZ, MapLibre and vector tiles, service workers, the Web Speech API
Back end and data
Node, Postgres with row level security, serverless functions and Blob storage on Vercel, WebSockets, GTFS-realtime protobuf decoded by hand, DNS with SPF, DKIM and DMARC
Platforms and tooling
Git and GitHub Actions, Vitest and Playwright, Lighthouse, Vercel, GitHub Pages and Render, Discourse themes and mail, WordPress plugins and Squarespace injection, Blender, ComfyUI

Selected workSites, systems and concepts · 2026

Client work

Sites and systems built for clients, and a few built as concepts to show what a page could be. Each card says which it is, and when.

LiveVelvet A. Johnson-Ross homepage: her name set in a large Bodoni serif above a pink script signature, on a dark plum sheet over a rose gradient, with her portrait beside it and buttons reading Experience, Public record and Testimony.

Velvet A. Johnson-Ross

Client site · velvetjohnsonross.com ·

A site for a New York housing justice and policy consultant. Eight static pages carrying her CV, her public record, her 2021 testimony reproduced in full, and the #HerHousing podcast with its research and its budget.

MoreLess

No build step, no framework and no dependencies. The palette and the type are taken from her own pitch deck, and one toggle carries the whole site between light and dark.

Open the live site
LiveVorkt News: a forum front page headed The 4am digest, and the argument that follows, with four story cards under a navy bar and a sidebar of rooms: The 4AM Digest, Scott's Writing, Politics, Open Floor.

Vorkt News

Client site · vorktnews.com ·

A reader forum for a daily news digest that used to go out as plain email. Discourse on a domain of its own, with a theme built from the mockup the client signed off. Delivered in two phases, live since September 2026.

MoreLess

A decorator turns his morning email into story cards without his readers ever seeing markup. Four rooms, moderation rails set so his judgment scales past what he can read himself, and forum mail authenticated so it never touches his main domain.

Open the live site
Live512 Capital Partners homepage: the line An Austin strategic advisory firm, founded by Pete Aman in 2010, set in a large serif on a navy page, above a contour map of Austin with Lake Austin and Lady Bird Lake drawn in, and a table of facts beside it.

512 Capital Partners

Client site and sales development · 512capitalpartners.com ·

An Austin strategic advisory firm. I built the firm's website, then the system behind its outreach desk: the sending domain authenticated before the first email went out, a research pipeline in Python that took a list of 502 organisations down to 311 qualified and 228 verified addresses, and a CRM built and loaded.

MoreLess

SPF corrected, a 2048-bit DKIM key live, DMARC reporting on, each checked by DNS query rather than taken on trust. Every batch passes a gate against the do-not-send file before anyone is written to.

Open the live site
LiveJess Fillyo homepage: a black split-screen with the model's name in large serif on the left, her measurements and booking buttons beneath, and a full-height portrait on the right.

Jess Fillyo

Client site · hosted here for her ·

A booking site for a New York model. Work grid, runway reel, measurements and downloadable digitals in one place, so an agency can see everything without asking for it.

Open the live site
LiveGrim Reaper Gardens: an engraved bone-white wordmark on a dark botanical field, under the line You reap what you sow.

Grim Reaper Gardens

Client site · grimreapergardens.com ·

A working storefront for a cannabis seed breeder upstate, rebuilt from the one he had and now live on his own domain, with his own strains, photographs and posts filled in. Age gate, a strain gallery with filters, genetics, consulting and a mailing list.

Open the live site
LiveNW Community Centers STEM Club page: the heading Next Generation STEM Club beside a table of program details, a green band listing Arduino robotics, Scratch and abacus, and a photograph of the New Life Culture Center in Tacoma.

NW Community Centers

Client site · nwcommunitycenters.org ·

A new site for a Tacoma nonprofit serving immigrant, refugee and low-income families since 1987. It replaced their Wix pages with thirteen static pages in English and twelve in Korean, covering the STEM Club, events and class registration. Live on their own domain since November 2026.

MoreLess

Families register by email or text: the form opens their own app with the answers filled in, and a QR code goes straight to it. All 39 old addresses redirect to their new pages, so existing links keep working, and the fonts are hosted with the site.

Open the live site
MockupSpace Weed mockup home page: a spaceship flight deck with a large cannabis flower floating outside the window over Earth's aurora, the headline Flower dried under vacuum, and below it a cargo bay with five windows of flower against the Milky Way.

Space Weed

Site mockup · proposal, not the live site ·

A proposal that redoes the Wix site of a flash-frozen cannabis flower brand. The home page is a walk through a ship drawn in CSS: each section is a deck with a window onto a real sky, and an iris, a corridor, a lift or a set of shutters carries you to the next.

MoreLess

Eight static pages behind an age gate that plays as being beamed aboard. The How it works page draws water's phase diagram from published equations, and a slider follows the flower from ice straight to vapour. The sky comes from NASA, ESA and ESO photographs, and the flower is the client's own.

Open the mockup
SampleStanding Room's home page: the view from a subway car window, drawn live, with a tiled station named Platform and a poster of a black parka on its wall, the headline Pick your stop over it, and the strip map and a dot-matrix sign reading This stop, Platform Parka, $168 along the top.

Standing Room

Storefront concept · a label that does not exist ·

A clothing label I made up to show what a small storefront can be when it keeps to one idea: six pieces for the ride in, each named for a stop on a line that was never built. The home page is the window of the car, drawn live: pick a stop on the strip map above it and the train rides there, pulling in at a station with the piece on its poster wall. Six product pages, a lookbook, a bag, and nothing for sale.

MoreLess

One typeface, no framework, no cookies, and a strict content security policy. The photographs were generated with a diffusion model on this machine under one rule, no faces, and the technical flat on each product page was drawn by hand in SVG.

Open the store

Built to orderLive products and working demos

Custom software

I build software around the way a business already runs: the reminder texts, the job board, the social calendar, the report somebody retypes every Monday. PostFlo is a live product. The others are working demos on made-up data that you can click through, and each one can be rebuilt around your own business.

LivePostFlo's home page: the headline Nothing goes out without your stamp beside a week of a coffee shop's posts on a calendar and a phone showing three posts waiting for approval, then the week as five steps, a rule check stopping a post that names a price, and one idea written for Instagram, X and LinkedIn.

PostFlo

Live product · post.workflohq.com ·

Runs a small business's social media. It drafts a week of posts for 13 networks, checks each one against the business's rules, and publishes what the owner approves.

MoreLess

Comments and messages from every account land in one inbox, and on the 1st of each month the owner gets a report of what went out and how people responded. An agency running several businesses sees all of them on one screen, and each client sees only their own. It also connects to Zapier, Make or an AI assistant, so posts can come from tools the business already uses.

See PostFlo Book a demo of PostFlo
DemoSales Floor Board, shown with generated data: tiles for leads with no contact in seven days, never contacted, open leads and calls today, a table of 22 agents sorted by who needs attention first, a grid of where leads are going stale, and a chart of the floor's calls per workday.

Sales Floor Board

Working demo · teams on GoHighLevel ·

Shows a sales manager who is falling behind. It tracks uncalled leads, stale leads and each agent's calls on a GoHighLevel sales floor.

MoreLess

The demo runs on 22 agents and 1,789 leads, all generated. On a live account every number comes straight from GoHighLevel, the board opens from GoHighLevel's own sidebar, and TV mode puts it on the wall.

Open the sales floor
SourceA Site Audit report on a test site: scores for speed, SEO, accessibility and best practices, the five fixes that matter most with an hour estimate on each, then pages on phone speed, how the site reads to Google, and a prioritised work list.

Site Audit

Audit on request · local businesses ·

Audits a business's website. It reports the fixes that matter most, the speed on a phone and what Google can read, with a time on each fix.

MoreLess

It reads every page, runs Google's own speed test and checks the site against more than a hundred rules. The picture is the report it wrote about a test site built for it.

Read the source Ask for an audit of your site
Demo

Case Desk

Working demo · immigration law firms ·

Checks an immigration filing before it goes in the mail. It catches wrong fees, old forms and missing signatures or evidence, and blocks sign-off until the packet passes.

MoreLess

168 rules across five case types, from family petitions to Schedule A petitions for nurses, each with its source and the date it was checked. A rule pack is refused 30 days after its check, because USCIS changes fees and forms without notice. A test set of 288 invented packets with 227 planted mistakes runs in the page: every planted mistake caught, no false alarms. The demo is read-only, on invented packets, and built for attorneys.

Take the tour
Demo

Grant Office

Working demo · small nonprofits ·

Checks a grant application before it is submitted. It reads each document against the funder's rules and sends mistakes back with the fix.

MoreLess

186 rules from 13 funders, each quoted from the funder's page or form. Tested on a real nonprofit's October applications, it caught 26 of the 31 packet mistakes the team had found by hand and part of the other 5. It also found some they missed, such as an outdated form edition and answers over a form's character limit, and raised no false alarms on 12 live packets. The demo runs on an invented nonprofit.

Take the tour
Demo

Collections Desk

Working demo · freelancers and small studios ·

Gets a small business paid for finished work. It writes the invoice and the reminders, spots payments in the bank's email, and drafts a demand letter. The owner approves every message.

MoreLess

Every reminder passes a rules check first: a signed agreement, the amount on the ledger, the client's consent, quiet hours and no unread reply. When one fails, the desk refuses and shows the fix. Late interest comes only from the signed agreement, within New York's limits, and a payment email counts only once the owner says the money is there, because fake payment emails are a common scam. The demo is a recorded copy of the desk on an invented studio, with a guided tour that replays real button presses.

Take the tour
Demo

Underpayment Desk

Working demo · medical practices and billing companies ·

Checks what insurers paid a medical practice against what each payer's contract says, line by line from the remittance file. For every line paid short it quotes the clause, counts the appeal deadline and drafts the appeal. The biller approves and sends each one; the desk never submits anything.

MoreLess

It catches a rate below the fee schedule, a multiple-procedure cut on the wrong line, a line dropped as bundled that should pay, a bilateral procedure paid at 100 percent and units cut. It won't chase a bundle the federal coding edits allow or an appeal past its window, and it works out New York's prompt-pay interest on late claims. A test set with 35 planted underpayments runs in the page: every one caught, no false alarms. The demo is 90 days from an invented practice, so no figure in it is a typical result.

Take the tour
Demo

Fleet Desk

Working demo · small trucking fleets ·

Works a small fleet's quarterly IFTA fuel tax return from the two exports the carrier already has, the ELD's miles by state and the fuel card's receipts, and stops the filing on every gap an auditor would find. Between quarters it watches each driver's qualification file and says which document lapses next and who may not drive today.

MoreLess

The return is worked in whole cents and rounds the way the form does, so a return worked by hand matches it to the cent, at the rate table IFTA publishes each quarter. It leaves DEF and reefer fuel off, catches a receipt counted twice and fuel bought in a state the truck never entered, and names the section of 49 CFR behind every driver document. Everything it files is remembered between runs. The demo runs the real desk in your browser on an invented carrier.

Take the tour
Demo

COI Desk

Working demo · commercial lines insurance agencies ·

Reads a certificate-of-insurance request as it arrives by email, finds the insured's policies, checks them against the holder's contract, and either drafts the certificate for the CSR to approve or lists every gap with its fix. The CSR issues every certificate. The desk never shows a limit the policy does not carry.

MoreLess

It matches a loosely written or trade name to the insured on file and refuses when two fit, takes the contract on file as the requirement, and catches an expired policy, a limit below the contract and a missing additional-insured endorsement. The certificate is drawn on the standard liability layout, stamped with the agency's name, and checked before it is written. The demo runs the real desk in your browser on an invented agency with eleven requests, six ready and five on hold.

Take the tour
DemoTwo demos one above the other. No-Show Saver running a dental office's morning: one patient confirmed by text, one rescheduled, one who has not replied with the waitlist being texted, and $1,250 protected today. Below it, Night Desk answering for a late-night kitchen: a caller asks whether it is open late and for a table for four at nine, and the desk answers each in turn.

No-Show Saver and AI Front Desk

Working demos · dentists, salons, restaurants ·

Keeps the calendar full and the phone answered. One texts reminders and fills cancellations from a waitlist. The other answers after hours and takes reservations.

MoreLess

Both demos run in your browser on made-up businesses: a dental office's morning, with the money each saved appointment keeps on the books, and a late-night kitchen you can talk to out loud or type to. Nothing is recorded.

Run a dental office’s morning Talk to the front desk
LiveNet Sheet showing a seller's estimate for an $825,000 sale in Huntington: commission, New York transfer tax, attorney, title and the mortgage payoff taken off line by line, leaving $465,550 to walk away with.

Net Sheet

Live app · real estate agents ·

Shows a home seller what they will walk away with. It takes off the commission, New York's transfer tax, the attorney and the mortgage payoff.

MoreLess

The seller sees the numbers before anyone contacts them, so the agent hears from people who already know what a sale is worth to them.

Run a sample estimate Read the source

Want one built around your business? Email me the job your staff repeats most, and I'll tell you what it would take.

Email me the job

Live dataFetched on load

Maps you can actually drive

Not screenshots of data, and not a chart somebody exported last quarter. Every one of these fetches the numbers when you open it, plots them, and hands you the filters. Two of them redraw themselves while you watch, because the feed behind them changes every few seconds. The globe at the top is the one exception: its records come from published archives, not a feed, and it names the source of every one. Open one and start dragging.

Trains Now: a dark map of Manhattan, Brooklyn and Queens with coloured dots for the trains moving along their lines.
Live · the MTA's own feed, refreshed every 25 seconds Trains Now, running on this page

Every dot is a real train, placed on the track between the station it just left and the one it is heading for. Drag the map around. The full page adds the lines, the counts and what each train is doing.

Open Trains Now
Live

Deep Ancestry Atlas

Research globe · 300,000 years ·

262,000 dated records on one globe: ancient genomes, radiocarbon dates, cities, roads and languages, each a published record with its citation one click away. Drag the timeline and the ground changes with it.

MoreLess

At the last glacial maximum the sea is 120 metres lower, ice sits over Canada and northern Europe, and you can walk from Siberia to Alaska. Pick a journey and the camera flies it, low toward the horizon with the clock running: out of Africa to Australia, across the land bridge into the Americas, Taiwan to Polynesia. One hand-written WebGL page, with no framework and no build step.

Fly a journey Read the source
LiveBitemap: a map of New York City with 2,259 Chinese restaurants plotted in red, beside a panel of cuisine filters with counts.

Bitemap

Live map ·

Every restaurant in New York City on one map, 30,075 of them, drawn from the city's own inspection records. Filter by borough, by cuisine, or down to a regional kitchen, search for a dish rather than a name, and the map redraws as you go.

MoreLess

There are walking crawls built on top for when you want an afternoon planned rather than a single dinner. It runs on vector tiles, so panning a city's worth of points stays smooth on a phone.

Open the map Read the source
LiveNYC Pulse: a dashboard of 311 complaints with a bar chart of complaint types and a borough breakdown.

NYC Pulse

Live dashboard ·

Every 311 complaint filed in the last seven days, fetched from NYC Open Data the moment you load it. Nothing is stored and nothing is stale.

Open it Read the source
LiveTrains Now: a dark map of Manhattan, Brooklyn and Queens with coloured dots for 276 moving trains along their lines, and a legend counting trains per line.

Trains Now

Live subway map ·

Every train the MTA is reporting, right now, on the line it is running. The agency publishes protobuf with no coordinates in it, so the page decodes the feed itself and works out from the published schedule which two stations a moving train is between.

MoreLess

The feed says only "stopped at 42 St" or "in transit to 34 St". The position comes from the timetable, drawn on the track, refreshed every 25 seconds, and the dots ease across.

Watch it move How a feed with no coordinates becomes a map Read the source
LiveDocks Now: Citi Bike docks across Manhattan and Brooklyn coloured green, yellow and red by how many bikes they hold, with system totals across the top.

Docks Now

Live bike share ·

Every Citi Bike dock in the city, refreshed every fifteen seconds. Ask it for a bike or for a dock and the colours flip to answer the question you actually have.

Open the board
LiveSold Nearby: recorded sales in Bayside plotted as green dots on a street map, beside a list of addresses, sale prices and price per square foot.

Sold Nearby

Sales and values ·

What actually sold on any block in the five boroughs, with the price, the date, the square footage and what that works out to per foot, straight from the city's own register.

MoreLess

Nassau and Suffolk are covered too, which took some digging: the state publishes no individual sale prices out there at all, so the page works them back out of the assessment roll using each town's own published ratio.

Look up a block How the Long Island prices are derived Read the source
LiveAnt Atlas: a species map of the New York area with orange dots for records, beside a list of the species found there and their counts.

Ant Atlas

Species map ·

Every ant anyone has recorded, anywhere on Earth, from museum drawers and phone photographs alike. Pan to a place and it names what lives there.

Go looking

Games and 3DNot client work

Games, models, and photographs turned into 3D

Not client work, and I am not pretending otherwise. They are here because the hard parts of a game, physics that has to hold up, netcode, and making a thing feel good under your hand, are the same parts that decide whether a website is worth paying for. Four of the six games you can play in a browser right now. Under them: the ant models the first one runs on, then software that turns product photographs into something you can stand in your own room.

BuildingVivarium: ground level inside a keeper tank, big-headed ants crowding the rim of a water dish beside a syrup feeder, more of them on the cup behind, and a wooden screen in the room beyond the glass.

Vivarium

Simulation · in development ·

A formicarium in a browser tab. A wild queen comes down from her nuptial flight, digs in, seals herself away and raises the first workers on her own body reserves. Every ant after that is an individual with an age, a job and a stomach.

MoreLess

The nest they dig is measured against published casts of real big-headed ant nests. The simulation is deterministic and snapshot-safe, so a saved tank replays tick for tick, and the ants in the modelling block below are the same rigs, drawn here at their real size, three millimetres for a minor. Three.js and WebGL, no engine.

LiveGranulab: a falling sand sandbox with sand, water and acid piled in a dark instrument-panel interface.

Granulab

Playable ·

A falling sand sandbox in the Powder Game line. More than 40 materials with heat, fire and real chemistry between them, plus a maker for inventing your own element and its reactions. Nearly a million cells, 60 frames a second, no plugin.

Play it Read the source
LiveGrubs TD: ant towers defending a pheromone trail across a red picnic blanket while bugs march in.

Grubs TD

Playable ·

A tower defense where the towers are ants and the trail runs across a picnic blanket. Six maps, one for each hour of the day. Every sprite is drawn in code and every sound is synthesised, so the whole game is a few hundred kilobytes and works offline.

Play it Read the source
SourceAnt Raid: two nests at opposite ends of a dirt arena with a column of ants marching along the road between them.

Ant Raid

Multiplayer · source only ·

The other half of Grubs TD: you are the wave. Two colonies, three roads, sugar to spend on the ants you send and the ones you keep home. You get a room code and send it to a friend.

MoreLess

It needs a socket held open, so it cannot live on static hosting the way the rest of this page does. The whole thing, game server included, is on GitHub.

Read the source
LiveMyrmidon: a team fight in an ant-themed MOBA, a scoreboard and minimap tracking two five-ant squads.

Myrmidon

Playable · in development ·

An ant colony MOBA: five against five, three lanes, a Queen to defend on each side. Twenty-four champions so far, each with its own body plan, kit and talents, played over a real connection with accounts, Elo and ranked seasons.

MoreLess

The simulation is deterministic, so the same seed replays a match tick for tick on any machine, which is what makes replays and a mid-game reconnect possible without trusting the client.

Free hosting sleeps between visits, so the first click can take twenty seconds to answer. This page nudges it awake as you scroll down.

Play it
LiveSporelings: a big cream mushroom with a face stands in a fairy ring of small brown mushrooms, pink spotted growers on either side, a mossy log with shelf fungus, a barrel and a compost heap behind.

Sporelings

Playable · idle clicker with AR ·

You poke a soft, toon-shaded mushroom. It squishes, puffs spores, and the spores buy growers that fill a little forest around it. On a phone, one tap opens the camera and puts the mushroom on your own table, and you keep playing it there.

MoreLess

In AR the game's camera follows the phone, so every poke, the physics and the spores run on the same code as on the screen. Once the mushroom is down, a camera button takes a photo of it on your table, framed like a journal page, to share or save. Every skin behaves like the material it looks like, measured in simulation: jelly jiggles for ages, velvet sinks like a pillow, clay keeps its dents. More than 600 tests and a harness that plays it in a real browser. Three.js and TypeScript, with 8th Wall's engine for AR.

Play it

Modelled, rigged, rendered

Modelling and animation

From Vivarium, above. The ants are real geometry on a real skeleton, not sprites. Pick a caste below and drag it around, then watch the same three turn.

Drag to spin · scroll to zoom

The minor worker, the one that does most of the work in a real colony. 44,859 triangles, three texture maps and a clearcoat pass for the wet look of chitin. All three castes ride the same 59 bone skeleton, which is what lets one animation drive the whole colony.

Feet that stay put

Worker · walking to camera ·

The hard part of insect walking is that the foot has to stay where it landed while the body moves over it. Get that wrong and the ant skates.

The same three, turning

Turntable · silhouette check ·

Every model gets spun through a full circle before it is allowed near the game. It is the fastest way to catch a proportion that only reads from one angle.

Photographs in, AR asset out

Photo to 3D

Software I wrote that turns a few product photographs into a 3D asset a shopper can stand in their own room at true size. No scanning rig, no modelling contract, no per-model licence, and nothing leaves the building: every stage runs on one desktop. Below is a Shin Godzilla figure it made from four store photographs. Switch between what one photograph gives and what four give.

Drag to spin · on a phone, put it on your floor

Four photographs. Shape from all four through a multi-view model, colour from the front, then each photograph aligned to the model by silhouette and painted on where the surface faces its camera. The red lines down the flanks and the tail tip ship as emission, so they glow in a dark room. About ten minutes on one graphics card.

The front product photograph of the Shin Godzilla figure beside the finished model rendered from the same camera angle.

Same angle, photograph and model

Workflow · photographs, geometry, product asset ·

Left is the store photograph. Right is the model, rendered from the camera the software found for that photograph by matching silhouettes, not lined up by eye.

MoreLess

The stance, the glow lines and the claws land where they are in the picture. What the camera never saw is still the model's guess, and the page says so.

Four product photographs of the figure above four renders of the finished model from the front, right, back and left.

Four photographs in

The software · Node and Python, local GPU ·

Each photograph is segmented, aligned to the model by silhouette, and projected onto the texture where the surface faces its camera.

MoreLess

A photograph whose pose does not match is refused rather than smeared on, and one whose colours refuse to correspond is refused too. The back view here is the same mould in another colourway, used for shape only.

DemoHolloway and Barham: a three-seat sofa rendered in 3D beside a printed specification sheet listing upholstery, mill code and abrasion rating.

Holloway & Barham

Product demo · 3D and AR ·

A product page built as a demo of 3D in the browser: the sofa is a real model, not a photograph. Four upholsteries ride inside one glTF file, so changing the fabric swaps the material on the spot and the specification sheet rewrites itself to match.

MoreLess

No reload and no second download. On a phone the same page stands the sofa in your own room. The viewer is also packaged as a WordPress plugin and as a Squarespace injection.

Open the demo

Source codeOn GitHub

Code written to be read

For developers and hiring managers. Each repository answers a question an interviewer would ask, and three of them run their tests on every push.

Punchboard signed in as the owner: a list of six open construction jobs, each with a job number, a phase, the client, the address and the crew.

Punchboard, with accounts

Source only · Postgres ·

A job board for a contractor, with people in it: an owner, a crew, and a client who gets a revocable read-only link instead of an account.

MoreLess

Tenant isolation is a database rule rather than a habit, so the queries carry no org_id filter at all and 14 tests write them the careless way on purpose to prove nothing leaks. Not deployed: it wants a hosted Postgres.

Read the source
The rebuilt net sheet showing a completed estimate: sale price, commission, transfer tax, attorney, title and mortgage payoff, netting $465,550.

Net Sheet, rebuilt

Live app + source · TypeScript ·

The same calculator in Next.js and TypeScript, with the arithmetic pulled out as pure functions and tested hard: 61 tests, run on every push.

MoreLess

Writing them found two real bugs in the original, including a transfer tax computed as a flat percentage when the statute charges per five hundred dollars or part thereof.

Open it Read the source
Ask New York: a question in English, the SQL it generated shown in full, and the five rows it returned.

Ask New York

Live app + source · text to SQL ·

A question in English becomes one Postgres query, shown to you before it runs against the city's inspection records. It publishes how often it is wrong: fifty fixed questions, graded on the rows they return, averaged over three runs. It scores 39%.

MoreLess

Low on purpose. The fifty include joins, aggregates and trap questions written to be failed. The simple ones pass eight times in ten, and it refuses the unanswerable ones four times in five. Most demos show the three questions they get right. The guard that checks each query was taken apart by an adversarial run and rebuilt.

Ask it something Read the score
A dark analytics dashboard, shown with sample data: page views, conversions and conversion rate across the top, then a table of traffic sources with a leads column beside each one.

First-party analytics

Running on this page + source ·

The conversion tracking behind this site, written from scratch: a serverless collector, a private store, and a dashboard behind a key.

MoreLess

No third-party script and no cookies, so there is no consent banner to click. It is recording your visit right now.

Read the source
FALA: a Portuguese learning app with a flashcard and progress counters.

FALA

Live app + source ·

A Brazilian Portuguese app: 240 cards on a spaced repetition schedule, native audio, and it keeps working in airplane mode.

Open the app Read the source
Asset Forge: a local generator with asset type presets, a subject field and a trained-model selector, reporting the engine ready and 8.9 of 10.7 GB of GPU memory free.

Asset Forge

Source only · local GPU ·

Game art generated on this desk rather than bought by the credit: a server that builds the workflows, a browser UI for the background cut and palette work, and a Blender pipeline that renders and captions a training set.

MoreLess

The cut and palette work happen client side so the original is never touched, and the training set teaches the model a specific look. It drives ComfyUI, Blender and kohya's trainer, which are about 32 GB and not mine, so the repository is the thousand lines that are.

Read the source

Case studiesLonger form

The hard part, written down

Four of these had a problem in the middle that took longer than the rest of the build put together. These are those parts: what the obstacle was, what I tried, and what the thing still cannot do.

Prices for a place that publishes none

Sold Nearby · open data

New York State publishes no individual sale prices for Nassau or Suffolk at all. The way out was a table almost nobody reads: the state's own published ratio of assessment to sale price, per town, per year.

Read the note

The browser that says everything is broken

This site · verification

The preview I build in reports a hidden document, so IntersectionObserver never fires and every scroll-revealed thing looks broken whether it is or not. How I check a change without trusting my eyes.

Read the note

A live map from a feed with no map in it

Trains Now · realtime

The MTA reports "stopped at 42 St", never a latitude. Sixty lines of protobuf decoding, then the published schedule to work out which two stations a moving train is between.

Read the note

One photograph to an AR asset

Photo to 3D · AR

A reconstruction model hands back shape and nothing else, and rebuilds the studio floor as a slab of geometry under the product. Finding that floor by width rather than by density is the part I am proudest of.

Read the case study Read the source

ContactSay hello

That is the work. If you want something built, write to me.

I read everything that arrives. Tell me what you are trying to make and I will tell you honestly whether I am the right person to make it.

I am Don Florencio, and Workflo is the name I build under. Websites, small tools and games out of New York and New Jersey, mostly in plain HTML, CSS and JavaScript. Everything on this page I made, and the source for a good deal of it is on GitHub. Thanks for looking.