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.
| Part | What 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.
- Install Node 22 if you do not have it.
- Get the code:
git clone https://github.com/ratul-sraj/hvac cd hvacnpm installnpm start- 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.