Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
opensysml.org
278 changes: 182 additions & 96 deletions opensysml-cover.html → index.html
Original file line number Diff line number Diff line change
Expand Up @@ -203,11 +203,6 @@
.wire.w1{animation-delay:0.05s;}
.wire.w2{animation-delay:0.25s;}
.wire.w3{animation-delay:0.45s;}
.wire-label{
font-family:'IBM Plex Mono', monospace;
fill:var(--cyan);
font-size:11px;
}
@keyframes draw{
from{stroke-dasharray:6 2000; stroke-dashoffset:0; opacity:0;}
to{stroke-dasharray:2000 0; stroke-dashoffset:0; opacity:1;}
Expand All @@ -216,32 +211,40 @@
.wire{animation:none; opacity:1;}
}

/* ---------- stat strip ---------- */
/* ---------- license statement strip ---------- */
.stats{
border-top:1px solid var(--line-dim);
border-bottom:1px solid var(--line-dim);
margin-top:72px;
}
.stats-grid{
display:grid;
grid-template-columns:repeat(4, 1fr);
text-align:left;
}
.stat{
padding:26px 28px;
border-left:1px solid var(--line-dim);
.license-heading{
padding-top:26px;
font-size:18px;
}
.stat:first-child{border-left:none;}
.stat .num{
font-family:'IBM Plex Mono', monospace;
font-size:22px;
color:var(--accent);
.license-list{
padding:10px 0 26px;
margin:0;
list-style:none;
}
.stat .label{
margin-top:6px;
font-size:13.5px;
.license-list li{
position:relative;
padding-left:20px;
font-size:14.5px;
color:var(--ink-dim);
max-width:72ch;
margin-bottom:10px;
}
.license-list li:last-child{margin-bottom:0;}
.license-list li::before{
content:"";
position:absolute;
left:0;
top:9px;
width:7px;height:7px;
background:var(--accent);
}
.license-list b{color:var(--ink); font-weight:500;}
.license-statement b{color:var(--ink); font-weight:500;}

/* ---------- section heads ---------- */
.section{padding:96px 0;}
Expand Down Expand Up @@ -319,36 +322,51 @@
}
.spec-link:hover{border-color:var(--accent); color:var(--accent);}

/* ---------- manifesto ---------- */
.manifesto{
background:var(--navy-900);
border-top:1px solid var(--line-dim);
border-bottom:1px solid var(--line-dim);
}
.manifesto-grid{
/* ---------- ecosystem cards (lighter variant of spec-card) ---------- */
.eco-grid{
display:grid;
grid-template-columns:1.1fr 1fr;
gap:64px;
align-items:start;
grid-template-columns:repeat(3, 1fr);
gap:24px;
}
.manifesto h2{font-size:clamp(26px,3.4vw,38px); max-width:14ch;}
.manifesto-points{
display:flex;
flex-direction:column;
gap:28px;
.eco-card{
position:relative;
border:1px solid var(--line-dim);
padding:24px 24px 22px;
}
.point{
padding-left:22px;
border-left:2px solid var(--line);
.eco-card .corner{width:9px;height:9px;}
.eco-tag{
display:inline-block;
font-family:'IBM Plex Mono', monospace;
font-size:11px;
letter-spacing:0.03em;
color:var(--cyan);
border:1px solid var(--line);
padding:2px 8px;
margin-bottom:14px;
}
.point.on{border-left-color:var(--accent);}
.point h4{
.eco-card.pending .eco-tag{color:var(--accent); border-color:var(--accent-dim);}
.eco-card h4{
font-family:'Space Grotesk', sans-serif;
font-size:16px;
font-weight:600;
margin-bottom:6px;
font-size:17px;
margin-bottom:10px;
}
.eco-card p{
color:var(--ink-dim);
font-size:14px;
margin:0;
}
.eco-link{
display:inline-block;
margin-top:16px;
font-size:13.5px;
font-weight:600;
color:var(--ink);
text-decoration:none;
border-bottom:1px solid var(--line);
padding-bottom:2px;
}
.point p{margin:0; color:var(--ink-dim); font-size:14.5px;}
.eco-link:hover{border-color:var(--accent); color:var(--accent);}

/* ---------- footer ---------- */
footer{padding:64px 0 48px;}
Expand Down Expand Up @@ -381,12 +399,50 @@
color:var(--ink-dim);
font-family:'IBM Plex Mono', monospace;
}
.license-row{
margin-top:28px;
padding-top:24px;
border-top:1px solid var(--line-dim);
display:flex;
align-items:center;
justify-content:space-between;
flex-wrap:wrap;
gap:16px;
}
.cc-badge{
display:inline-flex;
align-items:center;
gap:8px;
text-decoration:none;
color:var(--ink-dim);
}
.cc-badge:hover{color:var(--ink);}
.cc-badge .marks{
display:flex;
gap:3px;
}
.cc-mark{
width:22px;height:22px;
border-radius:50%;
border:1px solid var(--line);
display:flex;
align-items:center;
justify-content:center;
font-family:'IBM Plex Mono', monospace;
font-size:10px;
font-weight:500;
}
.cc-badge:hover .cc-mark{border-color:var(--ink-dim);}
.license-note{
font-size:13px;
color:var(--ink-dim);
max-width:52ch;
}
.license-note b{color:var(--ink); font-weight:500;}

@media (max-width:820px){
.stats-grid{grid-template-columns:1fr 1fr;}
.stat:nth-child(3){border-left:none;}
.stack-grid{grid-template-columns:1fr;}
.manifesto-grid{grid-template-columns:1fr;}
.eco-grid{grid-template-columns:1fr;}
.nav-row nav.links{display:none;}
}
</style>
Expand All @@ -398,7 +454,7 @@
<div class="wordmark"><span class="dot"></span>OpenSysML</div>
<nav class="links">
<a href="#stack">The stack</a>
<a href="#why">Why open</a>
<a href="#ecosystem">Ecosystem</a>
<a href="https://github.com/Open-MBEE">GitHub</a>
</nav>
</div>
Expand All @@ -413,6 +469,7 @@ <h1 class="headline">Open source finally speaks SysML v2.</h1>
<div class="cta-row">
<a class="btn btn-primary" href="https://github.com/Open-MBEE">Browse the repos</a>
<a class="btn btn-secondary" href="https://www.omg.org/sysml/">Read the spec</a>
<a class="btn btn-secondary" href="https://github.com/Open-MBEE/open-mbee.github.io/wiki/Participate-in-OpenMBEE-and-OpenSysML">Join the community</a>
</div>
</div>

Expand All @@ -423,10 +480,6 @@ <h1 class="headline">Open source finally speaks SysML v2.</h1>
<path class="wire w2" d="M450,255 C520,190 600,150 690,120" />
<path class="wire w3" d="M450,255 C450,320 450,360 450,395" />

<text class="wire-label" x="290" y="165" text-anchor="middle">interchange JSON / CBOR</text>
<text class="wire-label" x="612" y="165" text-anchor="middle">LSP · REPL · runtime</text>
<text class="wire-label" x="468" y="335" text-anchor="middle">grammar &amp; stdlib</text>

<!-- hub: Flexo MMS -->
<rect class="node-box hub" x="360" y="225" width="180" height="60" />
<text class="node-label" x="450" y="250" text-anchor="middle" font-size="15">Flexo MMS</text>
Expand All @@ -447,28 +500,17 @@ <h1 class="headline">Open source finally speaks SysML v2.</h1>
<text class="node-label" x="450" y="418" text-anchor="middle" font-size="14">SysML v2 Pilot Implementation</text>
<text class="node-sub" x="450" y="438" text-anchor="middle" font-size="11">OMG reference · Java / Xtext</text>
</svg>
<p class="diagram-caption">Four independently maintained projects. One open standard between them.</p>
</div>
</section>

<section class="stats">
<div class="wrap stats-grid">
<div class="stat">
<div class="num">3</div>
<div class="label">independent implementations of one spec</div>
</div>
<div class="stat">
<div class="num">2</div>
<div class="label">open licenses — Apache-2.0 &amp; EPL-2.0</div>
</div>
<div class="stat">
<div class="num">2025</div>
<div class="label">SysML v2 &amp; the Systems Modeling API formally adopted by OMG</div>
</div>
<div class="stat">
<div class="num">0</div>
<div class="label">seats to license, servers you don't control</div>
</div>
<div class="wrap">
<h3 class="license-heading">Licensing</h3>
<ul class="license-list">
<li>The OpenSysML stack uses a dual-license model: <b>Apache-2.0</b> for code and <b>CC BY 4.0</b> for wiki text, diagrams, and other written content.</li>
<li>The one exception is the OMG reference implementation, which is licensed <b>EPL-2.0</b> rather than Apache-2.0.</li>
<li>See the stack below for the specific license per project.</li>
</ul>
</div>
</section>

Expand All @@ -493,13 +535,15 @@ <h3>OpenSysML</h3>
<span>★ 8</span>
</div>
<a class="spec-link" href="https://github.com/Open-MBEE/OpenSysML">View on GitHub</a>
<a class="spec-link" href="https://implementation.opensysml.org/" style="margin-left:18px;">Docs</a>
<a class="spec-link" href="https://implementation.opensysml.org/guide/04-repl/" style="margin-left:18px;">Try the Runtime</a>
</div>

<div class="spec-card">
<span class="corner tl"></span><span class="corner tr"></span><span class="corner bl"></span><span class="corner br"></span>
<div class="spec-path">Open-MBEE / sysml-toolkit</div>
<h3>sysml-toolkit</h3>
<div class="spec-role">The toolchain</div>
<div class="spec-role">The tool kit</div>
<p class="spec-desc">A Rust workspace covering parsing, formatting, linting, JSON/CBOR interchange, constraint solving, and span-preserving model transformation, plus a language server and Python and WebAssembly bindings. Built for programmatic pipelines and CI, not just editing.</p>
<div class="spec-meta">
<span><b>Rust</b></span>
Expand Down Expand Up @@ -541,35 +585,67 @@ <h3>Flexo MMS</h3>
</div>
</section>

<section class="manifesto" id="why">
<div class="wrap section">
<div class="manifesto-grid">
<div>
<h2>A standard is only as open as its implementations.</h2>
<p class="sub" style="margin-top:20px; max-width:44ch;">A specification you can only run behind a commercial license isn't really open — it's a PDF. What makes SysML v2 different right now is that you can read the spec, then go clone, build, and run three separate implementations of it before lunch.</p>
<section class="section" id="ecosystem">
<div class="wrap">
<div class="section-head">
<h2>The wider ecosystem</h2>
<p>OpenSysML isn't a single product — it's a stack plus the people, standards bodies, and growing library ecosystem around it.</p>
</div>

<div class="eco-grid">

<div class="eco-card">
<span class="corner tl"></span><span class="corner tr"></span><span class="corner bl"></span><span class="corner br"></span>
<div class="eco-tag">Docs · CC BY 4.0</div>
<h4>OpenSysML Wiki</h4>
<p>Guides, decisions, and working notes for the project — the place to read up before digging into any one tool in the stack. Content is CC BY 4.0, separate from the code licenses above.</p>
<a class="eco-link" href="https://github.com/Open-MBEE/opensysml.github.io/wiki">Read the wiki</a>
</div>
<div class="manifesto-points">
<div class="point on">
<h4>Inspect anything</h4>
<p>Every parser, every validation rule, every constraint solver step is source you can read — not a black box behind a support contract.</p>
</div>
<div class="point">
<h4>Run it yourself</h4>
<p>Self-host the model store, the language servers, and the CLI tooling on your own infrastructure, with no per-seat licensing to negotiate.</p>
</div>
<div class="point">
<h4>Models that outlive any one tool</h4>
<p>RDF storage and standard JSON/CBOR interchange mean a model built with one implementation stays legible to the next.</p>
</div>
<div class="point">
<h4>Built in the open, together</h4>
<p>Three independent teams converging on the same OMG grammar is how a standard gets battle-tested — bugs in one implementation surface as gaps in another.</p>
</div>

<div class="eco-card">
<span class="corner tl"></span><span class="corner tr"></span><span class="corner bl"></span><span class="corner br"></span>
<div class="eco-tag">Standards body</div>
<h4>OMG SysML</h4>
<p>The Object Management Group's home for the SysML specification itself — the standard that every project in the stack implements.</p>
<a class="eco-link" href="https://www.omg.org/spec/SysML">Visit OMG SysML</a>
</div>

<div class="eco-card">
<span class="corner tl"></span><span class="corner tr"></span><span class="corner bl"></span><span class="corner br"></span>
<div class="eco-tag">Standards body</div>
<h4>INCOSE</h4>
<p>The International Council on Systems Engineering — the professional society behind much of the practice and methodology SysML v2 is built to support.</p>
<a class="eco-link" href="https://www.incose.org">Visit INCOSE</a>
</div>

<div class="eco-card">
<span class="corner tl"></span><span class="corner tr"></span><span class="corner bl"></span><span class="corner br"></span>
<div class="eco-tag">Parent community</div>
<h4>OpenMBEE</h4>
<p>The Open Model-Based Engineering Environment — open-source tooling for managing, integrating, and publishing systems models at scale, and the broader community OpenSysML grew out of.</p>
<a class="eco-link" href="https://www.openmbee.org">Visit OpenMBEE</a>
</div>

<div class="eco-card pending">
<span class="corner tl"></span><span class="corner tr"></span><span class="corner bl"></span><span class="corner br"></span>
<div class="eco-tag">Growing</div>
<h4>Libraries built on OpenSysML</h4>
<p>Parsers, exporters, editor integrations, and other open-source libraries built around SysML v2. Reach out through the wiki to get yours listed as this space grows.</p>
<a class="eco-link" href="https://github.com/Open-MBEE/opensysml.github.io/wiki">See what's listed so far</a>
</div>

<div class="eco-card pending">
<span class="corner tl"></span><span class="corner tr"></span><span class="corner bl"></span><span class="corner br"></span>
<div class="eco-tag">Coming soon</div>
<h4>OpenSysML Community</h4>
<p>How OpenSysML relates to OpenMBEE, INCOSE, and the OMG, and how the project is governed. This page is being written — check back soon.</p>
</div>

</div>
</div>
</section>


<footer>
<div class="wrap">
<div class="footer-top">
Expand All @@ -585,7 +661,17 @@ <h3>Pick a project, clone it, and start modeling.</h3>
</div>
<div class="footer-bottom">
<span>OpenSysML community · MBSE / SysML v2 ecosystem</span>
<span>built on an open standard, not a single vendor</span>
</div>

<div class="license-row">
<p class="license-note"><b>Code is Apache-2.0 / EPL-2.0</b> (per project, above). <b>Wiki text, diagrams, and other written content on this page are licensed CC BY 4.0</b> — reuse and adapt freely, with attribution.</p>
<a class="cc-badge" href="https://creativecommons.org/licenses/by/4.0/">
<span class="marks">
<span class="cc-mark">cc</span>
<span class="cc-mark">by</span>
</span>
CC BY 4.0
</a>
</div>
</div>
</footer>
Expand Down
Loading