Placing & connecting
- Drag from the palette, or click a palette item to drop it in the middle of the view.
- Drag from a port dot to another port to create a stream. Works in either direction.
- While dragging, ports that cannot legally accept the stream are dimmed and refuse the drop.
- Recycle streams (RAS, internal nitrate recycle) are allowed and drawn dashed.
Routing the streams
- Lines run orthogonally with filleted corners, the way a P&ID is drafted.
- Hover a stream and its movable runs show a small square handle —
drag a run sideways to move it. Vertical runs slide left/right,
horizontal runs slide up/down.
- A dead-straight stream has one handle in the middle: drag it to bend the line into a detour.
- Where a horizontal run crosses a vertical one, a line hop is drawn
automatically. Tees — a line meeting another at its end — get no hop.
- Parallel runs that would land on top of each other are fanned apart.
- Double-click a stream to drop hand routing and return it to automatic.
Auto-arrange resets every stream.
Navigation
- Drag empty canvas — pan · Wheel — zoom at cursor
- Shift+drag empty canvas — rubber-band select
- F fit to view · Ctrl+0 reset zoom · T mass balance table
- B fold the block palette away · P fold the properties panel away.
Click the rail that is left behind to bring it back.
- Drag the inner edge of either side panel to resize it —
double-click that edge to return it to the default width.
Widths and folded state are remembered.
Editing
- Del delete selection · Ctrl+D duplicate
- Ctrl+Z / Ctrl+Shift+Z undo · redo
- Ctrl+A select all · Esc clear selection
- Double-click a block header to rename it. Right-click a block for more actions.
Projects
- Projects lists everything stored under this account — open, rename,
duplicate, export or delete any of them, and start new ones. Projects are
stored on KinetiRO’s server under the account, encrypted here with your design
passphrase so that KinetiRO cannot read a design unless you share it, and
solved in this browser; this browser keeps a copy so they open without a
round trip.
- Work is written back to the open project as you go, and to the server a
moment later. Ctrl+S saves it now,
Ctrl+Shift+S seals it as
.eaqua,
Ctrl+O opens the browser.
- Rename in the title bar at the top left, or from the browser — either way it
is the same project.
- Export writes a sealed
.eaqua, a PDF drawing,
an Excel workbook or a plain .json project file;
Import takes the sealed file or the project file back.
Exporting
- Sealed · .eaqua — encrypted to the accounts you tick.
AES-256-GCM content, the key wrapped to each recipient with ECDH-ES on P-256,
the whole file signed. Somebody who is not a named recipient cannot read it,
and running this application does not help them: the decryption key lives on
the recipient's device, not in the app.
- Drawing · .pdf — a process flow diagram with a title block, an
equipment schedule and, once the sheet is solved, a full stream table. Its
equipment symbols are constructed with ISO 10628 as a reference; not every
symbol appears in that standard. A train too long for the sheet is drawn
smaller so the whole process still reads left to right on one line, and is
only cut into bands with match lines when shrinking further would stop the
symbols being legible.
- Workbook · .xlsx — four sheets: the stream table, the same
streams flattened one row to a stream, the unit results, and a balance
summary. It is written from a solved sheet, so the calculation has to have
run first, and it holds the numbers of that run rather than formulas —
editing a cell changes nothing else in the book.
- Project file · .json — the flowsheet itself: the blocks,
their parameters, the connections and the project's own details, in a named
versioned format that Import reads back. It is not encrypted; treat it as you
would any design file. It carries the design and not the results, so a
project opened from one is solved again.
- Only the sealed
.eaqua is encrypted. The drawing, the
workbook and the .json project file leave this application as
plain files, and anyone who holds one can read it. The stored project is
encrypted under your passphrase, but it is not wholly private: the water
characterisation, the outlet streams, the number of blocks and connections,
the dates and the account are stored readable, and a shared design can be
opened by KinetiRO. Turning sharing off stops it, but what has already been
shared cannot be taken back, and a design this browser has not opened
changes only the next time it is saved here. Anything you cannot afford to
lose should also be sealed to a second account, so there is more
than one way in.
Accounts, companies and seats
- The app is sold per seat per month, per company. A company has
a hex ID like
A3F1-9C02-7B4E and a number of purchased seats.
- Anyone with that ID can create an account; they confirm their
address with a six-digit code. That gives them an account, not a seat.
- The company's administrator assigns seats under
Team & seats, up to the number purchased. A seat is what
lets someone activate a device and get a working licence.
- The developer account creates companies, appoints their
administrators, and can remove any account or company.
- Every one of those rules is applied by the server, not by
this page. With no server configured the app runs against a local backend that
enforces nothing and sends no mail — it exists so the flow works before the
backend does. The sign-in screen says which one is answering.
The landing page
- The app opens on a hub: Projects, Profile,
Licence & sharing and Settings. The
house button in the toolbar goes back to it at any time.
- Your profile — name, position, company, email — is carried
inside the signature on your licence. The application can display it but has
no way to change it; only the issuer can, by re-issuing. Your account
is your email address.
- Settings keeps the grid snap, stream numbers and whether the
app skips this page on startup.
Licences and recipients
- The padlock button opens Licensing. Sealing needs a licence;
reading a sealed file needs to be one of its recipients.
- Device certificates are issued automatically when sealing arrives; there is
nothing to request by hand.
- To seal a file to a colleague, import their
.eaqua-lic
— the app sees it names somebody else and files it as a recipient.
A certificate is public and can go by email.
- The private keys live in this browser profile. Clearing
site data destroys them, and any sealed file addressed only to this device
becomes permanently unreadable.
Calculating
- Calculate or Ctrl+Enter solves the whole flowsheet.
Recycle loops are torn automatically and iterated to convergence.
- Bioreactors use ASM3 (13 components, 12 processes) solved as
steady-state CSTRs. Stoichiometry is derived from COD, nitrogen and charge
conservation, so mass balances close exactly.
- RO and NF march element by element using solution–diffusion transport with
film-theory concentration polarisation. Each ion is tracked separately, so
divalents, boron and silica behave differently — which is why the feed
ion analysis matters.
- Membrane blocks draw the array or the skids under Array diagram /
Skid diagram. The panel copy is a thumbnail — click it, or the
corner button, to open it full size with the labels, the legend and the
stage-by-stage breakdown.
- Results appear on the stream labels, in the inspector for whatever is selected,
and any problem found lands in Design checks.
- Results grey out as soon as an input changes. Re-run to refresh.
Port rules
Every block declares how many streams each port accepts and which
phases it will take — see unit-library.js. A port that still needs a
connection is ringed, and every unmet requirement is listed under Design checks.