MagNet / index.html
minjiechen's picture
Update MagNet static website
b440e64 verified
Raw History Blame Contribute Delete
13.9 kB
<!doctype html>
<html lang="en" data-magnet-static="true">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Princeton MagNet data, models, training resources, and prediction tools for power magnetics.">
<title>Princeton MagNet</title>
<link rel="stylesheet" href="./assets/styles.css">
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<header class="site-header">
<div class="header-inner">
<a class="brand" href="#/" aria-label="Princeton MagNet home">
<span class="brand-mark" aria-hidden="true">M</span>
<span><strong>MagNet</strong><small>Princeton University</small></span>
</a>
<nav aria-label="Primary navigation">
<a href="#/data" data-route="data">Data</a>
<a href="#/models" data-route="models">Models</a>
<a href="#/predict" data-route="predict">Predict</a>
<a href="#/documentation" data-route="documentation">Documentation</a>
</nav>
</div>
</header>
<main id="main">
<section class="view home-view" data-view="home" tabindex="-1">
<div class="home-intro">
<p class="eyebrow">Princeton Power Electronics Research Lab</p>
<h1>MagNet data and model hub</h1>
<p class="lede">Open resources for magnetic-material measurements, model development, and core-loss prediction.</p>
</div>
<div class="module-grid" aria-label="MagNet modules">
<a class="module-panel" href="#/data">
<span class="module-number">01</span>
<div><h2>Data</h2><p>Raw steady-state and transient measurements, plus training-ready releases.</p></div>
<div class="module-footer"><span><strong id="material-count">—</strong> materials · <strong id="dataset-count">—</strong> dataset families</span><span>Open data <span aria-hidden="true">→</span></span></div>
</a>
<a class="module-panel" href="#/models">
<span class="module-number">02</span>
<div><h2>Models</h2><p>Available baselines, migrated research models, and validation status.</p></div>
<div class="module-footer"><span><strong id="model-count">—</strong> registered models</span><span>Open models <span aria-hidden="true">→</span></span></div>
</a>
<a class="module-panel" href="#/predict">
<span class="module-number">03</span>
<div><h2>Predict</h2><p>Configure a waveform and estimate steady-state magnetic core loss.</p></div>
<div class="module-footer"><span>Interactive tool</span><span>Open predictor <span aria-hidden="true">→</span></span></div>
</a>
<a class="module-panel" href="#/documentation">
<span class="module-number">04</span>
<div><h2>Documentation</h2><p>Data contracts, training examples, model packaging, and usage guides.</p></div>
<div class="module-footer"><span>Guides and resources</span><span>Open documentation <span aria-hidden="true">→</span></span></div>
</a>
</div>
</section>
<section class="view module-view" data-view="data" tabindex="-1" hidden>
<a class="back-link" href="#/"><span aria-hidden="true">←</span> All modules</a>
<header class="module-header">
<div><p class="eyebrow">Data library</p><h1>Datasets</h1></div>
<p>Find raw measurements and training-ready releases. Published releases link to immutable files on Hugging Face.</p>
</header>
<div class="library-note">
<span class="hf-mark" aria-hidden="true">HF</span>
<div><strong>Hugging Face releases</strong><p>Only verified public releases show download links. Planned releases remain visible with their publishing status.</p></div>
</div>
<div class="library-toolbar">
<label class="library-search" for="dataset-search">Search datasets<input id="dataset-search" type="search" placeholder="Material, task, format, or title" autocomplete="off"></label>
<div class="filters" role="group" aria-label="Dataset filters">
<button class="filter active" data-dataset-filter="all" aria-pressed="true">All</button>
<button class="filter" data-dataset-filter="steady-state-loss" aria-pressed="false">Steady state</button>
<button class="filter" data-dataset-filter="transient-sequence" aria-pressed="false">Transient</button>
<button class="filter" data-dataset-filter="raw" aria-pressed="false">Raw</button>
<button class="filter" data-dataset-filter="processed" aria-pressed="false">Training ready</button>
<button class="filter" data-dataset-filter="published" aria-pressed="false">Downloadable</button>
</div>
<p id="dataset-result-count" class="result-count" aria-live="polite"></p>
</div>
<div id="dataset-grid" class="catalog-list" aria-live="polite"><p class="loading">Loading datasets…</p></div>
</section>
<section class="view module-view" data-view="models" tabindex="-1" hidden>
<a class="back-link" href="#/"><span aria-hidden="true">←</span> All modules</a>
<header class="module-header">
<div><p class="eyebrow">Model library</p><h1>Models</h1></div>
<p>Browse baselines and trained model packages. Published releases link to pinned artifacts and model cards on Hugging Face.</p>
</header>
<div class="library-note">
<span class="hf-mark" aria-hidden="true">HF</span>
<div><strong>Hugging Face releases</strong><p>Downloads are enabled only after the repository, immutable revision, license, and file checksums are verified.</p></div>
</div>
<div class="library-toolbar">
<label class="library-search" for="model-search">Search models<input id="model-search" type="search" placeholder="Material, framework, task, or title" autocomplete="off"></label>
<div class="filters" role="group" aria-label="Model filters">
<button class="filter active" data-model-filter="all" aria-pressed="true">All</button>
<button class="filter" data-model-filter="published" aria-pressed="false">Downloadable</button>
<button class="filter" data-model-filter="inference" aria-pressed="false">Online predictor</button>
<button class="filter" data-model-filter="steady-state-loss" aria-pressed="false">Steady state</button>
<button class="filter" data-model-filter="transient-sequence" aria-pressed="false">Transient</button>
</div>
<p id="model-result-count" class="result-count" aria-live="polite"></p>
</div>
<div id="model-grid" class="catalog-list" aria-live="polite"><p class="loading">Loading models…</p></div>
</section>
<section class="view module-view" data-view="predict" tabindex="-1" hidden>
<a class="back-link" href="#/"><span aria-hidden="true">←</span> All modules</a>
<header class="module-header">
<div><p class="eyebrow">Predict</p><h1>Compare core-loss predictions</h1></div>
<p id="predict-description">Enter one steady-state operating point to see the iGSE baseline and MagNet Transformer estimates together, plus the Transformer's predicted B–H loop. Model limitations and operating-range warnings appear with each result.</p>
</header>
<div class="prediction-layout">
<form id="prediction-form" class="prediction-form">
<label>Material<select id="material" name="material" required></select></label>
<label>Waveform<select id="waveform" name="waveform"><option value="sine">Sinusoidal</option><option value="triangle">Triangular</option></select></label>
<label id="duty-control" hidden>Rising duty ratio <span><output id="duty-output">50%</output></span><input id="duty" type="range" min="0.01" max="0.99" value="0.50" step="0.01" aria-describedby="duty-help"><small id="duty-help">Fraction of one cycle used to ramp from −Bpk to +Bpk.</small></label>
<label>Frequency <span><output id="frequency-output">100</output> kHz</span><input id="frequency" type="range" min="10" max="1000" value="100" step="5"></label>
<label>Peak flux density <span><output id="flux-output">100</output> mT</span><input id="flux" type="range" min="5" max="400" value="100" step="5"></label>
<label>Temperature <span><output id="temperature-output">25</output> °C</span><input id="temperature" type="range" min="0" max="120" value="25" step="5"></label>
<label id="bias-control">DC bias field <span><output id="bias-output">0</output> A/m</span><input id="bias" type="range" min="0" max="75" value="0" step="5"><small>Used by the Transformer; iGSE does not model DC bias or temperature.</small></label>
<button id="predict-button" class="button primary" type="submit">Calculate both models</button>
</form>
<div class="prediction-output" aria-live="polite">
<div class="waveform-chart"><canvas id="waveform-chart" width="760" height="260" aria-label="Input flux-density waveform">Flux-density waveform preview.</canvas></div>
<p id="waveform-summary" class="waveform-summary">Sinusoidal waveform, 100 mT peak.</p>
<div class="prediction-results" aria-label="Predicted volumetric loss density">
<article class="loss-card">
<h2>iGSE baseline</h2>
<strong id="igse-loss-result">—</strong>
<small>Predicted volumetric loss</small>
<p id="igse-prediction-note">Uses waveform, frequency, and material; ignores temperature and DC bias.</p>
</article>
<article class="loss-card">
<h2>MagNet Transformer</h2>
<strong id="neural-loss-result">—</strong>
<small>Predicted volumetric loss</small>
<p id="neural-prediction-note">Experimental legacy model. First run downloads the browser runtime and material model.</p>
</article>
</div>
<section id="bh-loop-section" class="bh-loop-section" aria-labelledby="bh-loop-heading" hidden>
<h2 id="bh-loop-heading">Predicted B–H loop</h2>
<div class="bh-loop-chart">
<svg id="bh-loop-svg" viewBox="0 0 760 360" role="img" aria-labelledby="bh-loop-title bh-loop-description">
<title id="bh-loop-title">Transformer-predicted B–H loop</title>
<desc id="bh-loop-description">Predicted field strength H on the horizontal axis and input flux density B on the vertical axis, in sample order.</desc>
<line class="bh-axis" x1="74" y1="170" x2="728" y2="170"></line>
<line class="bh-axis" x1="401" y1="40" x2="401" y2="300"></line>
<path id="bh-loop-path" d="" fill="none"></path>
<circle id="bh-loop-start" r="4" cx="0" cy="0"></circle>
<text id="bh-h-negative" x="74" y="326" text-anchor="start"></text>
<text id="bh-h-positive" x="728" y="326" text-anchor="end"></text>
<text id="bh-b-positive" x="76" y="34" text-anchor="start"></text>
<text id="bh-b-negative" x="76" y="298" text-anchor="start"></text>
<text class="bh-axis-label" x="401" y="348" text-anchor="middle">H (A/m)</text>
<text class="bh-axis-label" x="30" y="170" transform="rotate(-90 30 170)" text-anchor="middle">B (mT)</text>
</svg>
</div>
<p class="bh-loop-note">128 paired samples, in cycle order. The trace is not artificially closed; Transformer loss follows the original 127-interval H dB integration.</p>
</section>
</div>
</div>
</section>
<section class="view module-view" data-view="documentation" tabindex="-1" hidden>
<a class="back-link" href="#/"><span aria-hidden="true">←</span> All modules</a>
<header class="module-header">
<div><p class="eyebrow">Documentation</p><h1>Use MagNet</h1></div>
<p>Follow the shared data and model contracts so experiments remain reproducible and published artifacts remain traceable.</p>
</header>
<ol class="learning-list">
<li><strong>Review the measurements</strong><span>Understand equipment, geometry, units, calibration, and acquisition metadata.</span></li>
<li><strong>Load a dataset</strong><span>Use stable sample identifiers and published train, validation, and test splits.</span></li>
<li><strong>Train a baseline</strong><span>Run the included steady-state or transient example with a recorded configuration.</span></li>
<li><strong>Package a model</strong><span>Use the common inference interface and document the model's operating limits.</span></li>
</ol>
<div class="resource-links">
<a href="https://huggingface.co/datasets/minjiechen/MagNet" target="_blank" rel="noopener" data-api-reference><strong>Dataset guide</strong><span>Published data and download instructions ↗</span></a>
<a href="https://github.com/PrincetonUniversity/magnet"><strong>Source repository</strong><span>Code, examples, and issue tracking <span aria-hidden="true">→</span></span></a>
</div>
</section>
</main>
<footer>
<div><strong>Princeton MagNet</strong><span>Power Electronics Research Lab</span></div>
<div><a href="https://github.com/PrincetonUniversity/magnet">GitHub</a><a href="https://www.princeton.edu/~minjie/magnet.html">Original project</a><a href="#/documentation" data-api-footer>Documentation</a></div>
</footer>
<script src="./assets/static-predictor.js" defer></script>
<script src="./assets/neural-predictor.js" defer></script>
<script src="./assets/neural-domain.js" defer></script>
<script src="./assets/app.js" defer></script>
</body>
</html>