Scripts that generate and index thousands of assets, and a rule against inventing one.
IN PRODUCTION
This runs in client systems today. The sample below was regenerated for a fictional company.
Volume is the easy half: scripts render frames, derive sizes, build contact sheets, and index a library down to one canonical file per asset. The honest half is the rule that when a document needs an image the library does not have, a marked placeholder goes in naming what is missing and who can supply it. Never a plausible invention.
TRY IT / RUNS IN YOUR BROWSER
Use it here.
The mechanism is the production one. The company, the catalogue, and every figure are fictional.
Loading the pipeline output and the asset library.
THE OUTPUT / GENERATED FOR APEX INSTRUMENTS
What comes out.
PY
Render a branded social frame from a data fileData · Reads pipeline/input/frames.json and writes one 1080 by 1080 image per record in four frame kinds. Standard library plus Pillow. Without Pillow it writes SVG and says so.Open the file ↗
PY
Derive the standard sizesData · Five presets in two fit modes. Cover crops are anchored on a focal point rather than the middle. Enlargement is allowed up to 1.2 times and past that the image is padded rather than stretched. Every scale, crop box, pad and reason is written to derivatives.json.Open the file ↗
PY
Build a contact sheet from a folderData · One review page with every file name and pixel size read off the files. The vector sheet nests each source SVG inside the page, so it is the same artwork rather than a picture of it.Open the file ↗
PY
Scan a folder and write an indexData · Reads PNG headers and SVG viewBoxes directly, so it needs nothing but the standard library. Records no modification times, so the same folder always produces the same index.Open the file ↗
PY
The shared brand kit and the two renderersData · A layout is computed once as a list of shapes and handed to either the raster renderer or the vector one, which is why the SVG on the page and the PNG on disk are the same picture and why losing Pillow changes the format rather than breaking the run.Open the file ↗
MD
How to run the pipelineData · Requirements, the order to run them in, what each one does, the preset table, and the output sizes.Open the file ↗
JSON
The asset library, 402 assets from 1,312 pathsData · Each entry carries its canonical path, its duplicates with their sizes and why each was rejected, dimensions, format, bytes, where it is used, an owner, a status, and the reason that one file was kept. 910 duplicate paths resolved, 290 MB reclaimed, largest group 16 files.Open the file ↗
JSON
Ten placeholder cases from one document buildData · A sixteen page product guide with 34 image slots, 24 filled from the library and 10 marked as gaps. Each case names what is missing, the size and orientation it has to be, the near misses the system rejected and why, the person who can supply it, the due date, and whether it is on the critical path.Open the file ↗
JSON
The brand context bundleData · The ten parts handed to an external AI design tool so its output comes back on brand, each with what it contains, why it is needed, and what breaks without it, plus the three things that deliberately stay out of the bundle.Open the file ↗
JSON
What the last run producedData · Assembled from the real output of the four scripts rather than typed, so the counts on the panel and the files on disk cannot disagree.Open the file ↗
MJS
Data builderData · Node ESM. Generates the library from one table of asset families with a seeded generator, so the file is identical on every run, and assembles pipeline.json from the scripts' own output. It refuses to write if the counts do not add up or a dash appears in any string.Open the file ↗
Scripts render branded frames and derive every size from one source.
02Scan
A folder walk builds an index with dimensions, formats, and usage.
03Deduplicate
Near-identical files collapse to one canonical asset, and the others are recorded, not deleted quietly.
04Ask
A document build requests an image by what it needs, not by a path.
05Placeholder, never fabricate
If it is missing, a marked slot says what is missing and who owns it.
WHAT IT READS
The brand tokens and frame definitions
The raw asset library, duplicates and all
A document that asks for images it may not have
WHAT IT CHECKS BEFORE IT SHIPS
A missing image becomes a visible placeholder, never an invention
Every duplicate group resolves to one canonical file
Derived sizes keep the aspect ratio of their source
The index records where each asset is used
In production: 141 image and graphic generation scripts, and a library reduced from 5,959 paths to 1,172 unique assets with a CSV index.
The mechanism runs inside client systems. Everything on this page was regenerated for Apex Instruments, a company that does not exist. Client names, source files, and internal wording stay private.