tag. ========================================================= */ .nav-dashboard-btn{ font-family:var(--body); font-size:.82rem; color:var(--ink); background:var(--signal); border:0; border-radius:2px; padding:8px 12px; cursor:pointer; } .dashboard-overlay{ position:fixed; inset:0; z-index:200; display:none; background:var(--paper); color:var(--text-dark); overflow-y:auto; } .dashboard-overlay.open{display:block;} .dashboard-shell{ width:min(1180px, calc(100% - 32px)); margin:0 auto; padding:28px 0 70px; } .dashboard-topbar{ display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding:22px 0 28px; border-bottom:1px solid var(--line); } .dashboard-topbar h2{ font-family:var(--display); font-size:clamp(1.9rem,4vw,2.8rem); font-weight:400; line-height:1.1; margin-top:8px; } .dashboard-close{ width:42px; height:42px; border:1px solid var(--line); background:var(--paper-2); color:var(--text-dark); border-radius:50%; font-size:1.4rem; cursor:pointer; } .dashboard-notice{ display:none; margin:22px 0 0; padding:12px 14px; border-radius:4px; font-size:.92rem; } .dashboard-notice.show{display:block;} .dashboard-notice.success{background:#E9F3EC;color:#2F6B44;} .dashboard-notice.error{background:#FBEAEA;color:#9B3B3B;} .dashboard-layout{ display:grid; grid-template-columns:270px minmax(0,1fr); gap:34px; padding-top:30px; } .dashboard-profile, .dashboard-panel{ background:var(--paper-2); border:1px solid var(--line); border-radius:6px; } .dashboard-profile{ align-self:start; padding:24px; position:sticky; top:20px; } .dashboard-profile h3{ font-family:var(--display); font-size:1.35rem; margin-bottom:12px; } .dashboard-profile p{ color:var(--muted-on-paper); font-size:.9rem; overflow-wrap:anywhere; margin-bottom:8px; } .dashboard-role{ display:inline-block; margin-top:12px; padding:4px 8px; border-radius:99px; background:rgba(63,143,157,.12); color:var(--teal-deep); font-family:var(--mono); font-size:.69rem; text-transform:uppercase; letter-spacing:.08em; } .dashboard-main{ display:flex; flex-direction:column; gap:24px; } .dashboard-panel{padding:28px;} .dashboard-section-head{ display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:22px; } .dashboard-section-head h3, .dashboard-panel > h3{ font-family:var(--display); font-size:1.55rem; font-weight:500; } .dashboard-action{ border:0; border-radius:3px; background:var(--signal); color:var(--ink); padding:10px 14px; font-family:var(--body); font-weight:500; cursor:pointer; } .dashboard-action.secondary{ background:transparent; border:1px solid var(--line); } .application-list{ display:flex; flex-direction:column; gap:12px; } .empty-state{ padding:30px; border:1px dashed var(--line); text-align:center; color:var(--muted-on-paper); } .application-card{ border:1px solid var(--line); border-radius:5px; padding:18px; background:#fff; } .application-card-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; } .application-card h4{ font-family:var(--display); font-size:1.2rem; margin-bottom:4px; } .application-meta{ color:var(--muted-on-paper); font-size:.86rem; } .status-pill{ flex:0 0 auto; border-radius:99px; padding:5px 9px; background:rgba(63,143,157,.12); color:var(--teal-deep); font-family:var(--mono); font-size:.67rem; text-transform:uppercase; letter-spacing:.05em; } .status-pill.approved{background:#E9F3EC;color:#2F6B44;} .status-pill.declined{background:#FBEAEA;color:#9B3B3B;} .status-pill.more_information_required{background:#FFF3D9;color:#7A5512;} .dashboard-form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } .dashboard-field{margin-bottom:16px;} .dashboard-field.full{grid-column:1 / -1;} .dashboard-field label{ display:block; font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-on-paper); margin-bottom:6px; } .dashboard-field input, .dashboard-field select, .dashboard-field textarea{ width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:3px; background:#fff; color:var(--text-dark); font:inherit; } .dashboard-field textarea{ min-height:130px; resize:vertical; } .dashboard-field input:focus, .dashboard-field select:focus, .dashboard-field textarea:focus{ outline:2px solid var(--teal); outline-offset:1px; } .dashboard-check{ display:flex; align-items:flex-start; gap:9px; margin:10px 0 18px; color:var(--muted-on-paper); font-size:.9rem; } .dashboard-check input{margin-top:5px;} .form-actions{ display:flex; gap:10px; justify-content:flex-end; border-top:1px solid var(--line); padding-top:20px; } .admin-card{ border:1px solid var(--line); border-radius:5px; padding:20px; margin-top:14px; background:#fff; } .admin-card-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; font-size:.88rem; } .admin-card-grid strong{ display:block; font-family:var(--mono); font-size:.65rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted-on-paper); } .admin-summary{ white-space:pre-wrap; color:var(--muted-on-paper); margin:12px 0 16px; } .admin-note{ width:100%; min-height:80px; border:1px solid var(--line); border-radius:3px; padding:10px; font:inherit; resize:vertical; } .admin-actions{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; } .admin-actions button{ padding:8px 11px; border:1px solid var(--line); background:var(--paper-2); border-radius:3px; cursor:pointer; font-family:var(--body); } .admin-actions button[data-status="approved"]{ background:#E9F3EC; color:#2F6B44; } .admin-actions button[data-status="declined"]{ background:#FBEAEA; color:#9B3B3B; } @media(max-width:820px){ .nav-user .email{display:none;} .dashboard-layout{grid-template-columns:1fr;} .dashboard-profile{position:static;} .dashboard-form-grid{grid-template-columns:1fr;} .dashboard-field.full{grid-column:auto;} .admin-card-grid{grid-template-columns:1fr;} }
Project Nodus is a nonprofit network that links idle computers to university researchers in energy engineering — so a simulation that used to wait in a queue can run today.
We exist to accelerate scientific discovery around the world by connecting researchers with compute — giving brilliant minds access to the tools they need, and letting anyone take part in building the future of science.
Universities and volunteers run a lightweight agent. It only works while a machine is idle, and steps aside the instant someone sits back down.
We split large workloads — ensembles of reservoir simulations, Monte Carlo runs, parameter sweeps — into thousands of independent tasks across the network.
Results flow back to the researcher, merged and ready to analyze. No cluster account, no cloud invoice, no waiting weeks for a queue.
Access to serious computing power shouldn't depend on the size of a grant or the prestige of an institution.
Nodus serves university researchers and the public interest — never commercial extraction. The science stays open.
The computing power sitting unused overnight is enough to move real questions forward. We refuse to let it go to waste.
You don't need a lab or a PhD to contribute to science — sometimes you just need the computer already on your desk.
Reservoir engineering, geothermal, carbon storage, seismic interpretation — the work that defines the energy transition runs on ensembles: the same model, run hundreds of times across different geological realizations.
Nodus is built for exactly that shape of problem. Package your simulator in a container, hand us a parameter sweep, and turn your laptop into a control room for a thousand runs.
Whether you have a problem too big for your desktop or a desktop that sits idle at night — there's a place for you here.
Tell us about your work and the simulations you're running. We'll help you get your first ensemble onto the network.
Start a request →Lend the idle time on your machine — or your department's lab — to research that needs it. Install once, contribute quietly.
Get involved →