draftply DE Download

You could script it.
You don't have to.

You know how to write the code. But for a quick estimate, a conversion or a back-of-the-envelope model, a script brings ceremony: a file, a run, print statements — and whoever you send it to has to get it running before they see a single number. draftply is the notepad in between — and it takes numbers more seriously than most languages do.

energy.dply
1power = 1500 W1.5 kW
2energy = power * 4 h6 kWh
3energy * 0.30 €/kWh1.8 €
436 km/h to m/s10 m/s
Why not a script

For people who code

Less ceremony. More rigour.

01

0.1 + 0.2 is 0.3.

Decimals are stored as exact fractions, not binary approximations. Cents don't drift, == means equal, and a 20-digit integer stays a 20-digit integer. Only the display rounds — to the decimal places you choose.

Floating point0.1 + 0.2 → 0.30000000000000004the default in nearly every language
draftply
exact.dply
10.1 + 0.2 == 0.3true
21 / 3 * 31
3round(1.005, 2)1.01
42^6418,446,744,073,709,551,616
02

Units are checked. Mistakes stay local.

A quantity carries its unit through every step: watts times hours is kilowatt-hours, square metres over square metres is a plain number. Add a length to an area and that line says so, with the reason — while every line that doesn't depend on it keeps calculating.

Scriptarea_m2 = length_m * width_mthe unit lives in the name — nothing checks it
draftply
patio.dply
1length = 12 m12 m
2width = 4.5 m4.5 m
3area = length * width54 m²
4fence = 2 * (length + area)⚠ +: “m” and “m²” cannot be combined (different quantities)
5tiles = area / (0.3 m)^2600
03

No hidden state. No re-run.

The sheet is evaluated top to bottom from its text, on every keystroke. Nothing ran out of order, nothing is left over from an earlier run, and every intermediate value is already on screen — no print statements to find out what happened. Change the 85, and everything below follows.

Scriptedit → save → run → scrolland once more from the top, to be sure
draftply
job.dply
1rate = 85 €/h85 €/h
2hours = 3 h 20 min3 h 20 min
3Cost: rate * hoursCost:283.33 €
Hand it on

Sharing

A script has to be run. A sheet just opens.

To see what a script works out, the recipient needs the right runtime, the right packages and the know-how to start it. A .dply file opens in draftply on phone or desktop, with every step readable. With Pro it becomes a form: inputs on top, results below, the formulas untouched underneath. Libraries travel along in one bundle.

Also built in

Free, on every platform

The boring parts, handled.

Plain textA .dply file is text with a small header. Diff it, version it, read it in any editor.
Nothing to installNo runtime, no packages, no environment that breaks on update. Works offline.
SandboxedThe language has no file or network access. Data comes in and goes out only through a file dialog you click; a sheet from elsewhere waits until you press Evaluate.
Engineering built-insComplex numbers (3 + 4i), hex, binary and octal, bit operations, dB and E-series — no import.
Dates and clock timesnow - 8:12 is a duration, today + 30 days a date — and live sheets tick along by the minute.
One file everywherePhone, tablet and desktop open the same sheet and get the same results.
When it grows

Pro

Functions, classes, algebra — when the question grows.

Indented blocks, functions with default parameters, classes with methods, and loops whose every pass can be traced in the result column. Symbolic solve, factor, diff and integrate. A function named like a built-in wins across the document, so a later version of draftply can't change your results. Exact numbers, units and everything under “Also built in” are free; forms and this section are Pro.

loan.dply
1class Loan(amount, rate, years):function defined
2 def monthly():
3 r = self.rate / 12
4 return self.amount * r / (1 - (1 + r)^(-12 * self.years))
5
6car = Loan(18000 €, 4.9%, 5)Loan(amount: 18,000 €, rate: 0.049, years: 5)
7round(car.monthly(), 2)338.86 €
8factor(x^2 - 5*x + 6)(x − 3)(x − 2)
9integrate(x^2, x, 0, 3)9
Honest limits

Where a script wins

Some jobs need a real program.

Lots of dataLoops stop at 10,000 passes, recursion at 100 levels, and matrices beyond 10,000 entries fall back to 16-digit floats.
AutomationA sheet calculates while you look at it. No command line, no scheduling, no batch runs.
The outside worldNo network, no APIs, no database. CSV files come in and go out by hand.
EcosystemLibraries are draftply's own .dplylib files — functions and units, not a package ecosystem.
Raw speedExact fractions trade speed for correctness. Heavy number crunching belongs in a compiled language.
TeamworkNo shared live editing. A sheet is a file you pass on, not a document you work on together.

Once a draft has proven itself and needs to run unattended, rebuild it as a program. The sheet makes a readable spec for that.

Script it later. Draft it now.