What it is
A browser-based planner for sizing multi-vendor equipment racks β power, heat, weight, airflow, and now network cabling β before you commit to a bill of materials.
Think of it as a vendor-neutral take on Dell's EIPT: drag servers, GPU boxes, and switches into rack elevations and watch the power draw, cooling load, current, weight, and U-space roll up in real time. Lay out the cabling between them and the tool flags speed mismatches, connectors that won't mate, and runs that exceed a cable's reach. When something is over a limit, it proposes a concrete fix.
It runs entirely in your browser. Your projects are saved to this browser's local storage β there's no login and nothing is uploaded, except the two optional AI features described below (which only send the small bit of context they need, when you click them).
Quick start
The fastest way to learn the tool is to poke at the demo it ships with, then build your own.
- Open the planner. On a fresh browser it loads a sample data-center project (the MDK-C demo) so you have something to look at. A red banner reminds you its figures are provisional.
- Start your own. Click + Project in the header, give it a name. You get one empty rack to begin with.
- Drag in hardware. Grab a device from the Hardware Catalog on the left and drop it onto a rack slot. The right-hand panel updates power, heat, weight, and current instantly.
- Watch the limits. Each rack shows a Binding: U 40% badge telling you which constraint (U, weight, or power) is closest to its ceiling. It turns OVER if you exceed one.
- Wire it up (optional). Switch to the Network / Wiring view and click Infer missing links to auto-cable servers to their top-of-rack switches.
- Fix problems. Wherever a π‘ button appears, click it for a one-click fix that's been checked against the physics.
- Export. Click β¬ Export for a PDF report, an Excel workbook, or a JSON file you can re-import later.
The interface
The screen has three panes plus a header.
| Area | What lives there |
|---|---|
| Header | Project picker, + Project / Rename / Delete, β Settings, β¬ Import Spec, β¬ Export, and the ever-present estimates disclaimer. |
| Left rail | The Hardware Catalog. Filter by vendor, category, or a name search; drag items into racks; add or refine custom devices. |
| Center | Configuration tabs across the top, then a view toggle β Configuration, Bill of Materials, Network / Wiring β and the rack canvas itself. + Rack adds racks. |
| Right panel | Live roll-ups: the selected device's detail, then the whole-solution summary, the active configuration, and each rack β power, heat, current, weight, U, and the binding constraint. |
The three center views
- Configuration β the rack elevation. Drag, drop, nudge, and select devices.
- Bill of Materials β a flat table of every placed device with its key specs.
- Network / Wiring β the cabling map, validation results, and link editor.
Projects, configurations, and racks
The tool organizes work in a simple hierarchy:
Projects
A project is a whole plan, saved under its own slot in this browser. Use the header dropdown to switch between projects; create, rename, and delete them with the header buttons. Saves are automatic and debounced. If your browser's storage is full, the tool warns you and points you to Export β JSON so you never lose work silently.
Configurations
Within a project, configurations are alternative layouts you want to compare β say, a 25G design versus a 100G design. Tabs across the top of the canvas switch between them; double-click a tab to rename. β§ Duplicate config deep-copies a configuration including its wiring (links are re-pointed to the new copies). You can keep up to 10 per project.
Racks
A new rack defaults to 42U, a 2000 lb weight limit, and a 3-phase 415 V A/B power feed. The power-budget (kW) limit is off by default β set per-rack limits to make the binding-constraint badge meaningful for power. Rename a rack from its heading; remove it with the Γ (a configuration always keeps at least one rack).
The hardware catalog
The left rail is your parts bin. Each entry shows a vendor color dot, the form factor, max power, and a confidence chip. Filter with the vendor / category dropdowns or the search box.
What ships in the box
The seed catalog spans five vendors. Two entries are sourced from published specs; the rest are estimated and meant to be refined with authoritative data:
| Vendor | Examples |
|---|---|
| NVIDIA | DGX B200 (8Γ Blackwell) sourced |
| Dell | PowerEdge R770 sourced, R660; PowerSwitch S5232F-ON, S3048-ON (OOB), S4148F-ON, S5248F-ON, Z9864F-ON (800G spine) |
| HPE | ProLiant DL380 Gen11 |
| Supermicro | GPU SuperServer SYS-821GE-TNHR (8Γ H100) |
| Lenovo | ThinkSystem SR675 V3 (4Γ SXM5) |
Adding your own devices
Three ways, all landing in the same confirm form:
- + Add custom device β type the specs by hand.
- β¬ Import Spec β drop a PDF β best-effort extraction from a vendor data sheet (see AI & data).
- β¬ Import Spec β β¨ Add by name β let the AI find and pre-fill it.
Custom devices are stored in this browser and appear in the catalog like any other. Click the β on a catalog row to refine an entry in place.
server, gpu-server, switch,
storage, chassis, custom) drives behavior: switches don't take
NIC cards, chassis hold children, and the suggestion engine only swaps like-for-like categories.
Placing & arranging devices
- Add β drag a catalog item onto a rack slot. A green highlight means it fits; red means it's blocked or runs past the top of the rack.
- Move β drag a placed device to a new slot, or to another rack.
- Nudge β select a device and press β / β to shift it one U.
- Remove β select and press Delete, use the Remove button, or drag the device out of any rack and drop it on empty space.
- Duplicate β the Duplicate button copies the selected device into the first free slot. (A single-device duplicate starts unwired; duplicating a whole configuration keeps its wiring.)
Chassis and children
A chassis (e.g. a blade enclosure) holds child devices. Drop a 0U module directly onto a chassis; drop full-U devices into the rack. Children render as chips on the chassis and can be dragged back out β to another chassis, to a rack slot, or off-rack to delete them.
Configuring a placed device
Select a device and click Configure⦠to set:
- Clone quantity β model N identical units in one slot (multiplies every metric).
- CPU / GPU loading β utilization that scales operating power between idle and max. Sizing always uses max draw.
- Ambient Β°C and Fans at full speed β full-speed fans size the device at its max draw.
- Network adapters (NICs) β add cards (Broadcom / NVIDIA) that contribute the data ports used in the wiring view. Switches skip this β their ports are fixed on the faceplate.
Power & thermal
The right panel rolls everything up live. A few ideas are worth understanding so the numbers mean what you think they mean.
Three power figures, two jobs
| Figure | Used for | How it's derived |
|---|---|---|
| Idle | Reference low bound | Vendor idle draw. |
| Operating (typical) | Energy & cost | Vendor typical, or scaled by your CPU/GPU utilization. Full-speed fans push it to max. |
| Sizing (max) | Circuits & cooling | The device's rated max draw β always worst-case, so breakers and CRACs are never undersized. |
Heat, airflow, sound, current
- Heat / cooling β watts β BTU/hr and tons of cooling.
- Airflow β uses the vendor's CFM when published; otherwise it's modeled from heat and a cooling ΞT, and clearly flagged ~est.
- Sound β summed logarithmically in bels (you can't just add decibels).
- Current β phase-aware: single-phase
I = P / (VΒ·pf), three-phaseI = P / (β3Β·VΒ·pf), computed at the rack's feed.
Redundancy β two independent axes
The tool tracks these separately because they fail separately:
- Internal PSU (
1+1,N+1,5+1β¦): does usable PSU capacity β after losing a supply β still cover the load? You'll see full redundancy, fault-tolerant only, or exceeds capacity. - External A/B feed: each redundant feed is sized for the full load (it has to carry everything on a failover). If the surviving feed's PSUs can't carry the load, you get a feed-loss warning.
The binding constraint
Each rack reports which limit β U, weight, or power β is closest to its ceiling, as a percentage. Over 100% turns the badge red and a π‘ fix button appears. Power only participates once you set a kW limit on the rack.
Network / wiring view
Switch the center toggle to Network / Wiring to lay out and validate cabling. The view shows a status summary (errors / warnings / unconnected), a per-rack table of links, the list of unconnected ports, and notes.
How a device gets ports
Every device's ports come from two places: built-in faceplate ports (a server's iDRAC/iLO/BMC management port, or a switch's access/uplink ports), plus data ports contributed by NIC cards you add in the Configure dialog. So a bare server has only its management port until you give it a network card.
What validation actually checks
Connectivity rests on two independent ideas, which together produce every real-world failure mode without a giant lookup table:
- Cage / form factor β can the two ends physically mate? (RJ45, SFP, QSFP, QSFP-DD, QSFP112, OSFP, OSFP112, with sensible backward compatibility β an SFP28 plugs into an SFP+ cage, etc.)
- Speed β a link runs at the slower of its two ends.
| Verdict | Means |
|---|---|
| β OK | Mates cleanly and the run is within reach. |
| β Degraded | Connects, but the faster end is capped by the slower one (e.g. a 25G NIC into a 10G port runs at 10G), or the run is near a cable's reach limit. |
| β Error | Connectors don't mate, the run exceeds the cable's reach for that media, a switch port is double-booked, or an endpoint device/port no longer exists. |
Inferring links automatically
The two buttons in the summary bar do the heavy lifting:
- Infer missing links β additive. Cables up server data ports to that rack's data top-of-rack switch and management ports to an OOB (RJ45) switch, without touching links you've already made. Run it after adding hardware.
- Re-infer (replace all) β discards every link in the configuration and re-derives from scratch. It asks first, because manual edits are lost.
Inference deliberately refuses to guess: cloned devices, uplinks (left as external endpoints), management ports with no OOB switch, and ports with no compatible target are left unconnected and reported rather than wired wrongly.
Editing links by hand
+ Add linkβ¦ (or the β on any row) opens the link editor: pick a device and port for each end, choose the media, and set a length in metres. Endpoint B can instead be an external label (e.g. "β transport core") for anything off-rack β external ends aren't validated, by design. The β on a row deletes that link.
Fix suggestions (π‘)
Wherever the tool detects a problem it can act on, a π‘ button appears β on an over-budget rack, a selected device, a bad link row, or an unconnected port. Click it to see one or more suggested fixes.
Every suggestion is derived from the same catalog and physics that found the problem β nothing is invented. Before a swap is offered, the engine simulates it to confirm it actually clears the constraint without blowing another. Each suggestion carries a confidence chip and an explicit "what the engine can't know" note (for example: it matches form factor, power, and weight, but cannot verify a replacement has the CPU cores or GPUs your workload needs).
| Problem | Typical one-click fix |
|---|---|
| Rack over power / weight / U | Swap the biggest contributor to a lighter / cooler / smaller model that clears the limit (shown with a before-confirm preview). |
| Cable exceeds reach | Bump the run to the cheapest media tier that covers the length. |
| Too many NICs for the slots | Remove the last adapter (which also drops the links it provided). |
| Unconnected management port | Add an OOB switch to the rack, then infer links. |
| Unconnected data port | Add a data top-of-rack switch, then infer links. |
| Degraded speed / won't-mate | Advisory: pick matching endpoints or add a breakout β a topology call the tool won't make for you. |
Applying a fix goes through the normal undo history, so anything a suggestion does is reversible with Ctrl+Z. A device swap shows a consequence summary (moved to fit, NICs dropped, links kept/dropped) and waits for your confirmation.
AI features (β¨)
Two optional, clearly-marked AI helpers speed up data entry and decisions. They're the only features that talk to a server, and each sends only the small context it needs. If the backend isn't configured, these simply don't appear and everything else works unchanged.
β¨ Add hardware by name
Under β¬ Import Spec, type one or more model names (one per line, or comma-separated for a batch). The service searches the vendor's spec sheet, extracts what it can, and estimates the rest. You then confirm and correct every field before it's added β fields the source didn't actually state are flagged amber β for your review. Expect roughly 20 seconds per model.
β¨ Ask AI about a fix
In the suggestions popup, the β¨ Ask AI button asks the advisor to either explain the trade-off of a suggested swap, or β when nothing in the catalog fits β to propose a real off-catalog part. If it proposes one, a Fetch & apply button runs the add-by-name flow on that part and swaps your device to it (after the usual confirm).
Drop-a-PDF import
Also under β¬ Import Spec: drop a vendor spec-sheet PDF and the tool reads the text locally and pre-fills what it can find. This is best-effort β vendor PDFs vary wildly and power/CFM/acoustics are often absent β so you confirm everything on the next screen. The PDF itself is never stored or uploaded; only the record you confirm is saved.
Import & export
The β¬ Export button opens a menu with four actions. The PDF and Excel libraries load on first use, so the first click takes a moment.
| Format | Contains |
|---|---|
| PDF report | Solution summary, per-configuration / per-rack device tables with totals, plus a network cabling page (link validation + an aggregated cable bill of materials). Problem rows are tinted. |
| Excel workbook | Sheets for Summary, Bill of Materials, Settings (every assumption that affects a number), Cabling, and Cable BOM. |
| JSON | The complete project β the format to use for saving, backing up, or sharing a plan. |
| Import JSON⦠| Load a previously exported .rackplan.json. Older files are
migrated forward automatically. |
Solution settings
β Settings exposes the modeling assumptions. Defaults are sensible; change them only if you know why.
| Setting | Default | Effect |
|---|---|---|
| Utilization model | Linear | How operating power scales with load. "Concave" is a conservative-high estimate, off by default and labeled as modeled. |
| Concave exponent | 0.8 | Curve shape when concave is selected. |
| Power factor | 0.95 | Used for current sizing from watt inputs. |
| Cooling ΞT (Β°F) | 30 | Reconciles modeled airflow with vendor CFM. |
| PUE | 1.4 | Facility overhead applied to annual energy. |
| Cost per kWh | 0 (off) | Set above 0 to reveal annual energy and cost rows. |
Power feed voltage and phase are set per rack (default 3-phase 415 V), not here.
Confidence & honesty
This tool is deliberately candid about what it knows. Three signals tell you how much to trust a number:
- sourced β taken from a published vendor spec.
- estimated β a defensible estimate; refine before you rely on it.
- low β a rough guess, usually from a sparse import.
You'll also see a β review flag on devices whose imported fields weren't actually stated in the source, a persistent header disclaimer, a ~est marker on modeled airflow, and the reach-is-conservative note in the wiring view. None of this is decoration β it's there so a planning estimate never gets mistaken for a procurement guarantee.
Keyboard shortcuts
| Key | Action |
|---|---|
| Ctrl/β + Z | Undo (up to 50 steps) |
| Ctrl/β + Shift + Z, or Ctrl + Y | Redo |
| β / β | Nudge the selected device up / down one U |
| Delete / Backspace | Remove the selected device |
| Esc | Close the open dialog |
| Ctrl/β + Enter | Submit the "add by name" box |
FAQ & troubleshooting
Where is my data stored? Is anything uploaded?
Everything lives in this browser's local storage. Nothing is uploaded except the two AI features, and only when you click them. Use Export β JSON to move a project between browsers or machines.
I lost my project / switched computers.
Projects don't follow you across browsers or machines β that's the trade-off for no login. Export to JSON regularly if a plan matters, and re-import it elsewhere.
The tool says storage is full.
Local storage has a size cap. Export anything you want to keep to JSON, then delete old projects you no longer need.
Why won't a device drop where I want it?
A red highlight means the slot is occupied or the device would run past the top of the rack. 0U modules must be dropped onto a chassis, not bare rack slots.
Why is a port left unconnected after I inferred links?
The engine won't guess. Common reasons: there's no compatible switch in the rack (add a data ToR or an OOB RJ45 switch), the device is cloned (set quantity to 1), or the port is an uplink meant to leave the rack (wire it manually to an external endpoint).
The AI buttons aren't showing.
The AI features appear only when their backend endpoint is configured for this site. Everything else β cataloging, layout, power, thermal, wiring, suggestions, export β works fully without them.
Can I trust these numbers for a purchase?
No β treat them as planning estimates and verify against vendor data sheets before procurement. That's what the confidence chips and the standing disclaimer are about.