About LoadLens

LoadLens is a small, free cooling load calculator for buildings. You give it a floor plan PDF or a room schedule; it gives you the room-wise cooling load in TR, supply air in L/s and the watts behind every room.

It exists because the first pass of an HVAC load estimate is usually the slowest part of the job. The rooms are already named and dimensioned in the drawing — retyping them into a spreadsheet is pure copying. LoadLens reads that text layer directly and starts you from the real room list, which you then check and correct.

It is a study and checking tool, not a certified design package. The method is handbook-level and simplified; see Method and assumptions for the exact numbers and Help for what kinds of PDFs work.

Who made it

LoadLens is built and maintained by Ratul S, an MEP / HVAC drafter and modeller working with Kerala and Gulf projects. It started as a personal script to stop retyping room schedules, and is published as open source so other students, modellers and consultancies can use it and improve it.

The code is public: https://github.com/ratul-sraj/hvac. Issues, corrections to the assumptions and pull requests are welcome there.

The stack

Deliberately boring: no framework, no build step, no CDN.

PartWhat is used
Pages and styling Plain HTML, one CSS file per area, system fonts only. Two separate CSS files: one for the calculator, one for these public pages.
Application logic Plain ES modules (js/*.js) loaded directly by the browser. No bundler, no transpiler, no minification.
PDF text extraction pdf.js 4.10.38, vendored locally in vendor/ so the page works offline.
Optional server Node 22 + Express, with multer for uploads. It serves the same UI and can read the PDF on the server instead of in the browser.
Hosting GitHub Pages for the free static version; the same folder runs on Docker, Render, Railway or Fly if you want the server.
Storage Your browser's local storage, plus plain .json project files you save and open yourself. No database, no accounts.
Python None. The project is Python-free — Node and the browser only, so there is nothing extra to install.
Tests Plain Node scripts (no test framework) for the engine, the parser and the API, plus a puppeteer-core check that drives the real Edge browser.

How to run it yourself

1. Free version — do nothing

The static version is served straight from GitHub Pages. Open the calculator and it works: the PDF is read in your browser. There is no server and nothing to install.

Best for a quick estimate on any computer, including a college lab.

2. Local version — the Node server

Faster on big drawings, and the PDF is read on your own machine.

  1. Install Node 22 if you do not have it.
  2. Get the code: git clone https://github.com/ratul-sraj/hvac
  3. cd hvac
  4. npm install
  5. npm start
  6. Open http://localhost:3000

The page detects the server on its own and switches to server-side reading. Change the port with PORT=8080 npm start.

Where your files go

Nowhere you do not control. In the static version the PDF is read by pdf.js inside your own browser tab and never leaves the computer. In the local server version it is posted to http://localhost:3000 — your own machine — parsed there, and not stored. There is no analytics, no third-party upload and no account.

Contributing

The method numbers live in one readable file and the assumptions are all named. If you find a value that does not match your local code (NBC India, ECBC, ASHRAE), open an issue at github.com/ratul-sraj/hvac with the city and the reference. Corrections are welcome.