{"id":247,"date":"2026-05-27T19:45:41","date_gmt":"2026-05-27T19:45:41","guid":{"rendered":"https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/research\/"},"modified":"2026-06-25T14:38:34","modified_gmt":"2026-06-25T14:38:34","slug":"research","status":"publish","type":"page","link":"https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/research\/","title":{"rendered":"Research Workbench"},"content":{"rendered":"\n<a href=\"https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/\" class=\"wb-backlink\" style=\"position:fixed;top:14px;left:14px;z-index:99999;display:inline-flex;align-items:center;gap:6px;padding:8px 13px;background:rgba(10,12,20,0.72);color:#fff;font:600 12.5px\/1 Arial,Helvetica,sans-serif;letter-spacing:0.04em;text-decoration:none;border:1px solid rgba(255,255,255,0.28);border-radius:999px\">\u2190 Workbench<\/a>\n\n\n\n\n\n\n<div id=\"rw\">\n\n  <!-- Conway's Life \u2014 full-page subliminal texture  z=0 -->\n  <canvas id=\"rw-life\" aria-hidden=\"true\"><\/canvas>\n\n  <!-- \u2550\u2550 HERO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <section class=\"rw-hero\" id=\"rw-hero-section\">\n\n    <!-- Gray-Scott reaction-diffusion canvas  z=0 -->\n    <canvas id=\"rw-rd\" aria-hidden=\"true\"><\/canvas>\n\n    <!-- Vignette keeps edges dark and text readable  z=1 -->\n    <div class=\"rw-vignette\" aria-hidden=\"true\"><\/div>\n\n    <!-- Text content  z=2 -->\n    <div class=\"rw-in\">\n      <div class=\"rw-hero-body\" id=\"rw-hero\">\n        <p class=\"rw-eyebrow\">Clarkson AI Institute<\/p>\n        <h1 class=\"rw-title\">Research<br><em>Workbench<\/em><\/h1>\n        <p class=\"rw-tagline\">\n          Build worlds with AI.<br>\n          Defend the freedom to know.\n        <\/p>\n        <p class=\"rw-law\">The human must go first.<\/p>\n        <p class=\"rw-equation\" aria-hidden=\"true\">\n          du\/dt = D<sub>u<\/sub>\u2207\u00b2u \u2212 uv\u00b2 + F(1\u2212u) &nbsp;\u00b7&nbsp;\n          dv\/dt = D<sub>v<\/sub>\u2207\u00b2v + uv\u00b2 \u2212 (F+k)v\n        <\/p>\n      <\/div>\n    <\/div>\n\n  <\/section>\n\n  <!-- \u2550\u2550 THRESHOLD \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <div class=\"rw-threshold\" id=\"rw-threshold\" aria-hidden=\"true\">\n    <div class=\"rw-in\">\n      <div class=\"rw-stem\"><\/div>\n      <p>Where do you want to begin?<\/p>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550 FIVE DOORS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <section class=\"rw-doors\" aria-label=\"Research pathways\">\n\n    <div class=\"rw-door\" data-w=\"0\" tabindex=\"0\" role=\"button\" aria-label=\"Imagine a Research World\" onclick=\"location.href='https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/research\/imagine\/'\" style=\"cursor:pointer\">\n      <div class=\"rw-in\"><div class=\"rw-door-row\">\n        <span class=\"rw-door-num\" aria-hidden=\"true\">I<\/span>\n        <div class=\"rw-door-text\">\n          <div class=\"rw-door-title\">Imagine a Research World<\/div>\n          <div class=\"rw-door-desc\">Frame a question, system, archive, laboratory, community, or future as a world of inquiry.<\/div>\n        <\/div>\n        <span class=\"rw-door-arrow\" aria-hidden=\"true\">\u2192<\/span>\n      <\/div><\/div>\n    <\/div>\n\n    <div class=\"rw-door\" data-w=\"1\" tabindex=\"0\" role=\"button\" aria-label=\"Make Knowledge Visible\" onclick=\"location.href='https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/research\/make-knowledge-visible\/'\" style=\"cursor:pointer\">\n      <div class=\"rw-in\"><div class=\"rw-door-row\">\n        <span class=\"rw-door-num\" aria-hidden=\"true\">II<\/span>\n        <div class=\"rw-door-text\">\n          <div class=\"rw-door-title\">Make Knowledge Visible<\/div>\n          <div class=\"rw-door-desc\">Turn research into public artifacts: maps, exhibits, simulations, essays, dashboards, field notes, and visualizations.<\/div>\n        <\/div>\n        <span class=\"rw-door-arrow\" aria-hidden=\"true\">\u2192<\/span>\n      <\/div><\/div>\n    <\/div>\n\n    <div class=\"rw-door\" data-w=\"2\" tabindex=\"0\" role=\"button\" aria-label=\"Prototype With AI\" onclick=\"location.href='https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/research\/prototype-with-ai\/'\" style=\"cursor:pointer\">\n      <div class=\"rw-in\"><div class=\"rw-door-row\">\n        <span class=\"rw-door-num\" aria-hidden=\"true\">III<\/span>\n        <div class=\"rw-door-text\">\n          <div class=\"rw-door-title\">Prototype With AI<\/div>\n          <div class=\"rw-door-desc\">Build experimental agents, workflows, models, archives, instruments, interfaces, simulators, and knowledge systems.<\/div>\n        <\/div>\n        <span class=\"rw-door-arrow\" aria-hidden=\"true\">\u2192<\/span>\n      <\/div><\/div>\n    <\/div>\n\n    <div class=\"rw-door\" data-w=\"3\" tabindex=\"0\" role=\"button\" aria-label=\"Create Standards From Practice\" onclick=\"location.href='https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/research\/create-standards-from-practice\/'\" style=\"cursor:pointer\">\n      <div class=\"rw-in\"><div class=\"rw-door-row\">\n        <span class=\"rw-door-num\" aria-hidden=\"true\">IV<\/span>\n        <div class=\"rw-door-text\">\n          <div class=\"rw-door-title\">Create Standards From Practice<\/div>\n          <div class=\"rw-door-desc\">Turn recurring research problems into shareable protocols, methods, disclosure practices, and human-first AI patterns.<\/div>\n        <\/div>\n        <span class=\"rw-door-arrow\" aria-hidden=\"true\">\u2192<\/span>\n      <\/div><\/div>\n    <\/div>\n\n    <div class=\"rw-door\" data-w=\"4\" tabindex=\"0\" role=\"button\" aria-label=\"Protect Academic Freedom\" onclick=\"location.href='https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/research\/protect-academic-freedom\/'\" style=\"cursor:pointer\">\n      <div class=\"rw-in\"><div class=\"rw-door-row\">\n        <span class=\"rw-door-num\" aria-hidden=\"true\">V<\/span>\n        <div class=\"rw-door-text\">\n          <div class=\"rw-door-title\">Protect Academic Freedom<\/div>\n          <div class=\"rw-door-desc\">Name what must remain human, slow, critical, private, contested, speculative, non-instrumental, or refused.<\/div>\n        <\/div>\n        <span class=\"rw-door-arrow\" aria-hidden=\"true\">\u2192<\/span>\n      <\/div><\/div>\n    <\/div>\n\n  <\/section>\n\n  <!-- \u2550\u2550 LIVING WORLDS \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <section class=\"rw-worlds\" aria-labelledby=\"rw-worlds-title\">\n    <div class=\"rw-in\">\n      <div class=\"rw-section-head\" id=\"rw-worlds-head\">\n        <span class=\"rw-label\">Living Research Worlds<\/span>\n        <h2 class=\"rw-section-title\" id=\"rw-worlds-title\">Knowledge taking form<\/h2>\n      <\/div>\n      <div class=\"rw-grid\" role=\"list\">\n\n        <article class=\"rw-card\" id=\"rw-c0\" role=\"listitem\">\n          <div class=\"rw-card-status\">\u25cf Active World<\/div>\n          <h3 class=\"rw-card-title\">The Legibility of AI Decisions in Public Infrastructure<\/h3>\n          <p class=\"rw-card-q\">&#8220;How do we make algorithmic governance visible to the communities it governs?&#8221;<\/p>\n          <div class=\"rw-card-meta\">\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">Form<\/span><span class=\"rw-meta-v\">Public interface + policy archive<\/span><\/div>\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">AI role<\/span><span class=\"rw-meta-v\">Pattern detection in decision logs<\/span><\/div>\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">Human holds<\/span><span class=\"rw-meta-v\">What counts as legible to a citizen<\/span><\/div>\n          <\/div>\n        <\/article>\n\n        <article class=\"rw-card\" id=\"rw-c1\" role=\"listitem\">\n          <div class=\"rw-card-status\">\u25ce Prototyping<\/div>\n          <h3 class=\"rw-card-title\">Two-Eyed Seeing in Environmental Data<\/h3>\n          <p class=\"rw-card-q\">&#8220;What would ecological monitoring look like if it held Indigenous and scientific knowledge simultaneously?&#8221;<\/p>\n          <div class=\"rw-card-meta\">\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">Form<\/span><span class=\"rw-meta-v\">Bilingual field-note engine<\/span><\/div>\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">AI role<\/span><span class=\"rw-meta-v\">Translation scaffolding only<\/span><\/div>\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">Human holds<\/span><span class=\"rw-meta-v\">Which knowledge is not translatable<\/span><\/div>\n          <\/div>\n        <\/article>\n\n        <article class=\"rw-card\" id=\"rw-c2\" role=\"listitem\">\n          <div class=\"rw-card-status\">\u25cb Forming<\/div>\n          <h3 class=\"rw-card-title\">A Foundry for Responsible Materials Research<\/h3>\n          <p class=\"rw-card-q\">&#8220;How do material scientists communicate <a class=\"gls\" href=\"https:\/\/sites.clarkson.edu\/ai-institute\/workbench\/tools\/specs\/#g-uncertainty\" target=\"_blank\" rel=\"noopener\">uncertainty<\/a> and risk to non-specialist publics?&#8221;<\/p>\n          <div class=\"rw-card-meta\">\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">Form<\/span><span class=\"rw-meta-v\">Simulation + plain-language archive<\/span><\/div>\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">AI role<\/span><span class=\"rw-meta-v\">Draft plain-language summaries<\/span><\/div>\n            <div class=\"rw-meta-row\"><span class=\"rw-meta-k\">Human holds<\/span><span class=\"rw-meta-v\">What uncertainty is safe to simplify<\/span><\/div>\n          <\/div>\n        <\/article>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550 ACADEMIC FREEDOM \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <section class=\"rw-freedom\" id=\"rw-freedom\" aria-label=\"Academic freedom statement\">\n    <div class=\"rw-in\">\n      <p class=\"rw-freedom-stmt\">\n        Faculty decide how AI enters their research worlds.\n        What AI may do. What it must not do.\n        Where human judgment remains sovereign.\n      <\/p>\n      <p class=\"rw-freedom-law\">Academic freedom is the governing law of this workbench.<\/p>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550 BUILD WITH US \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <section class=\"rw-build\" id=\"rw-build\" aria-labelledby=\"rw-build-h\">\n    <div class=\"rw-in\">\n      <h2 class=\"rw-build-h\" id=\"rw-build-h\">Build<br>with us.<\/h2>\n    <\/div>\n  <\/section>\n\n  <!-- \u2550\u2550 FOOTER \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <footer class=\"rw-foot\">\n    <div class=\"rw-in\">\n      <span class=\"rw-foot-mark\">Clarkson AI Institute \u2014 Research Workbench<\/span>\n      <span class=\"rw-foot-law\">The human must go first<\/span>\n    <\/div>\n  <\/footer>\n\n<\/div><!-- #rw -->\n\n<script>\n(function () {\n  'use strict';\n\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  \/\/  GRAY-SCOTT REACTION-DIFFUSION  (hero background)\n  \/\/\n  \/\/  Gray, P. & Scott, S.K. (1983). Chem. Eng. Sci. 38:29\u201343.\n  \/\/  Gray, P. & Scott, S.K. (1985). Chem. Eng. Sci. 39:1087\u201397.\n  \/\/  Pattern atlas: Pearson, J.E. (1993). Science 261:189\u2013192.\n  \/\/\n  \/\/  Theoretical foundation:\n  \/\/  Turing, A.M. (1952). \"The Chemical Basis of Morphogenesis.\"\n  \/\/  Phil. Trans. R. Soc. B, 237:37\u201372.\n  \/\/\n  \/\/  Two virtual chemicals, U and V, react and diffuse:\n  \/\/\n  \/\/    du\/dt = D\u1d64\u2207\u00b2u  \u2212  uv\u00b2  +  F(1\u2212u)\n  \/\/    dv\/dt = D\u1d65\u2207\u00b2v  +  uv\u00b2  \u2212  (F+k)v\n  \/\/\n  \/\/  U is fed continuously at rate F (toward saturation at 1).\n  \/\/  V autocatalyses via U + 2V \u2192 3V, consuming U, producing V.\n  \/\/  V is removed at rate (F+k). The ratio D\u1d64\/D\u1d65 and the F\u2013k\n  \/\/  parameter space determine morphology: spots, stripes, worms.\n  \/\/  The same mathematics generates leopard spots, zebrafish\n  \/\/  stripes, and the whorls of a human fingerprint.\n  \/\/\n  \/\/  Cursor interaction: the visitor seeds the simulation.\n  \/\/  Nothing happens until the human moves first.\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n  var noMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  var hasMouse = window.matchMedia('(pointer: fine)').matches;\n  if (noMotion) return; \/\/ CSS already hides canvases under reduced-motion\n\n  var root        = document.getElementById('rw');\n  var rdCanvas    = document.getElementById('rw-rd');\n  var lifeCanvas  = document.getElementById('rw-life');\n  var heroSection = document.getElementById('rw-hero-section');\n\n  \/\/ \u2500\u2500 Gray-Scott parameters \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  var F  = 0.037;\n  var k  = 0.060;\n  var Du = 0.160;\n  var Dv = 0.080;\n  var dt = 1.0;\n\n  var SCALE = 3;\n  var RW, RH;\n  var u0, v0, u1, v1;\n  var rdCtx, rdImage;\n  var rdRunning = false;\n  var rdRaf;\n\n  function rdInit() {\n    var rect = heroSection.getBoundingClientRect();\n    RW = Math.max(Math.floor(rect.width  \/ SCALE), 120);\n    RH = Math.max(Math.floor(rect.height \/ SCALE), 60);\n    rdCanvas.width  = RW;\n    rdCanvas.height = RH;\n    rdCtx   = rdCanvas.getContext('2d');\n    rdImage = rdCtx.createImageData(RW, RH);\n    var n = RW * RH;\n    u0 = new Float32Array(n); v0 = new Float32Array(n);\n    u1 = new Float32Array(n); v1 = new Float32Array(n);\n    for (var i = 0; i < n; i++) { u0[i] = 1.0; v0[i] = 0.0; }\n    rdSeed(Math.floor(RW * 0.38), Math.floor(RH * 0.5), 4);\n    rdSeed(Math.floor(RW * 0.62), Math.floor(RH * 0.5), 4);\n  }\n\n  function rdSeed(cx, cy, r) {\n    for (var dy = -r; dy <= r; dy++) {\n      for (var dx = -r; dx <= r; dx++) {\n        if (dx*dx + dy*dy > r*r) continue;\n        var x = (cx + dx + RW) % RW;\n        var y = (cy + dy + RH) % RH;\n        var idx = y * RW + x;\n        u0[idx] = 0.50; v0[idx] = 0.25;\n      }\n    }\n  }\n\n  function rdStep() {\n    var i, x, y, idx, u, v, Lu, Lv, uvv;\n    for (y = 0; y < RH; y++) {\n      for (x = 0; x < RW; x++) {\n        idx = y * RW + x;\n        var left  = y * RW + (x - 1 + RW) % RW;\n        var right = y * RW + (x + 1) % RW;\n        var up    = ((y - 1 + RH) % RH) * RW + x;\n        var down  = ((y + 1) % RH) * RW + x;\n        u = u0[idx]; v = v0[idx];\n        Lu = u0[left] + u0[right] + u0[up] + u0[down] - 4.0 * u;\n        Lv = v0[left] + v0[right] + v0[up] + v0[down] - 4.0 * v;\n        uvv = u * v * v;\n        u1[idx] = Math.max(0, Math.min(1, u + dt * (Du * Lu - uvv + F * (1.0 - u))));\n        v1[idx] = Math.max(0, Math.min(1, v + dt * (Dv * Lv + uvv - (F + k) * v)));\n      }\n    }\n    var tmp;\n    tmp = u0; u0 = u1; u1 = tmp;\n    tmp = v0; v0 = v1; v1 = tmp;\n  }\n\n  function rdRender() {\n    var d = rdImage.data;\n    var n = RW * RH;\n    for (var i = 0; i < n; i++) {\n      var v = v0[i];\n      var t = Math.pow(Math.min(v * 3.2, 1.0), 0.75);\n      d[i*4]   = Math.floor(7   + t * 118);\n      d[i*4+1] = Math.floor(7   + t * 78);\n      d[i*4+2] = Math.floor(12  + t * 18);\n      d[i*4+3] = 255;\n    }\n    rdCtx.putImageData(rdImage, 0, 0);\n  }\n\n  function rdLoop() {\n    if (!rdRunning) return;\n    rdStep(); rdStep(); rdStep();\n    rdRender();\n    rdRaf = requestAnimationFrame(rdLoop);\n  }\n\n  heroSection.addEventListener('mousemove', function (e) {\n    if (!rdRunning) return;\n    var rect = rdCanvas.getBoundingClientRect();\n    var cx = Math.floor((e.clientX - rect.left) * (RW \/ rect.width));\n    var cy = Math.floor((e.clientY - rect.top)  * (RH \/ rect.height));\n    rdSeed(cx, cy, 3);\n  });\n\n  heroSection.addEventListener('touchmove', function (e) {\n    if (!rdRunning || !e.touches[0]) return;\n    var rect = rdCanvas.getBoundingClientRect();\n    var cx = Math.floor((e.touches[0].clientX - rect.left) * (RW \/ rect.width));\n    var cy = Math.floor((e.touches[0].clientY - rect.top)  * (RH \/ rect.height));\n    rdSeed(cx, cy, 5);\n  }, { passive: true });\n\n  var rdObserver = new IntersectionObserver(function (entries) {\n    entries.forEach(function (e) {\n      if (e.isIntersecting) {\n        if (!rdRunning) { rdRunning = true; rdLoop(); }\n      } else {\n        rdRunning = false;\n        if (rdRaf) cancelAnimationFrame(rdRaf);\n      }\n    });\n  }, { threshold: 0.01 });\n\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n  \/\/  CONWAY'S GAME OF LIFE  (full-page subliminal texture)\n  \/\/\n  \/\/  John H. Conway, 1970. Four rules on a binary grid:\n  \/\/    1. Live cell with 2\u20133 live neighbours \u2192 survives\n  \/\/    2. Live cell with < 2 neighbours       \u2192 dies (underpopulation)\n  \/\/    3. Live cell with > 3 neighbours       \u2192 dies (overcrowding)\n  \/\/    4. Dead cell with exactly 3 neighbours \u2192 becomes alive\n  \/\/\n  \/\/  Life and Gray-Scott ask the same question from opposite ends:\n  \/\/  one is discrete (0 or 1), one is continuous (\u211d \u2208 [0,1]).\n  \/\/  Both run on this page simultaneously.\n  \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n  var CELL = 8;\n  var LW, LH;\n  var life0, life1;\n  var lifeCtx;\n  var lifeInterval;\n\n  function lifeInit() {\n    var rw = root.getBoundingClientRect();\n    var totalH = Math.max(root.scrollHeight, rw.height);\n    lifeCanvas.width  = Math.ceil(rw.width);\n    lifeCanvas.height = Math.ceil(totalH);\n    LW = Math.floor(lifeCanvas.width  \/ CELL);\n    LH = Math.floor(lifeCanvas.height \/ CELL);\n    lifeCtx = lifeCanvas.getContext('2d');\n    var n = LW * LH;\n    life0 = new Uint8Array(n);\n    life1 = new Uint8Array(n);\n    for (var i = 0; i < n; i++) {\n      life0[i] = (Math.random() < 0.07) ? 1 : 0;\n    }\n  }\n\n  function lifeStep() {\n    var x, y, idx, alive, n;\n    for (y = 0; y < LH; y++) {\n      for (x = 0; x < LW; x++) {\n        idx = y * LW + x;\n        alive = life0[idx];\n        n =  life0[((y-1+LH)%LH) * LW + (x-1+LW)%LW]\n           + life0[((y-1+LH)%LH) * LW + x]\n           + life0[((y-1+LH)%LH) * LW + (x+1)%LW]\n           + life0[y             * LW + (x-1+LW)%LW]\n           + life0[y             * LW + (x+1)%LW]\n           + life0[((y+1)%LH)   * LW + (x-1+LW)%LW]\n           + life0[((y+1)%LH)   * LW + x]\n           + life0[((y+1)%LH)   * LW + (x+1)%LW];\n        if (alive) {\n          life1[idx] = (n === 2 || n === 3) ? 1 : 0;\n        } else {\n          life1[idx] = (n === 3) ? 1 : 0;\n        }\n      }\n    }\n    var tmp = life0; life0 = life1; life1 = tmp;\n  }\n\n  function lifeDraw() {\n    lifeCtx.clearRect(0, 0, lifeCanvas.width, lifeCanvas.height);\n    lifeCtx.fillStyle = 'rgba(196,163,90,0.85)';\n    var x, y;\n    for (y = 0; y < LH; y++) {\n      for (x = 0; x < LW; x++) {\n        if (life0[y * LW + x]) {\n          lifeCtx.fillRect(x * CELL + 1, y * CELL + 1, CELL - 2, CELL - 2);\n        }\n      }\n    }\n  }\n\n  function onReveal(entries) {\n    entries.forEach(function (e) {\n      if (e.isIntersecting) { e.target.classList.add('up'); io.unobserve(e.target); }\n    });\n  }\n\n  var io = new IntersectionObserver(onReveal, { threshold: 0.07, rootMargin: '0px 0px -30px 0px' });\n\n  if (hasMouse) {\n    root.querySelectorAll('.rw-door').forEach(function (door) {\n      var row = door.querySelector('.rw-door-row');\n      door.addEventListener('mousemove', function (e) {\n        var r = door.getBoundingClientRect();\n        var dx = (e.clientX - r.left) \/ r.width  - 0.5;\n        var dy = (e.clientY - r.top)  \/ r.height - 0.5;\n        row.style.transform = 'translate('+(dx*4).toFixed(1)+'px,'+(dy*2).toFixed(1)+'px)';\n      });\n      door.addEventListener('mouseleave', function () { row.style.transform = ''; });\n    });\n  }\n\n  root.querySelectorAll('.rw-door').forEach(function (door) {\n    door.addEventListener('keydown', function (e) {\n      if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); door.click(); }\n    });\n  });\n\n  window.addEventListener('load', function () {\n    setTimeout(function () {\n      var h = document.getElementById('rw-hero');\n      var t = document.getElementById('rw-threshold');\n      if (h) h.classList.add('up');\n      setTimeout(function () { if (t) t.classList.add('up'); }, 480);\n    }, 120);\n    ['.rw-door', '#rw-worlds-head', '#rw-c0', '#rw-c1', '#rw-c2',\n     '#rw-freedom', '#rw-build'].forEach(function (sel) {\n      root.querySelectorAll(sel).forEach(function (el) { io.observe(el); });\n    });\n    rdInit();\n    rdObserver.observe(heroSection);\n    lifeInit();\n    lifeDraw();\n    lifeInterval = setInterval(function () { lifeStep(); lifeDraw(); }, 650);\n  });\n\n  window.addEventListener('pagehide', function () {\n    rdRunning = false;\n    if (rdRaf) cancelAnimationFrame(rdRaf);\n    if (lifeInterval) clearInterval(lifeInterval);\n    rdObserver.disconnect();\n    io.disconnect();\n  });\n\n  document.addEventListener('visibilitychange', function () {\n    if (document.hidden) {\n      clearInterval(lifeInterval);\n    } else {\n      lifeInterval = setInterval(function () { lifeStep(); lifeDraw(); }, 650);\n    }\n  });\n\n}());\n<\/script>\n<style class=\"advgb-styles-renderer\">\n#wrapper-navbar,.site-header,.hero__breadcrumbs,.breadcrumbs,.entry-header,\nfooter.site-footer,.footer-widgets,.navbar,nav.navbar,.wp-block-navigation,.wp-block-template-part{display:none!important}\n.col-md.content-area{padding:0!important}\n.entry-content.container{max-width:100%!important;padding:0!important;margin:0!important}\n.site-main,.row{padding:0!important;margin:0!important}\nbody{padding-top:0!important;background:#fff}\n\n\/* ============================================================\n   RESEARCH WORKBENCH \u2014 Clarkson AI Institute  v1.3\n   ============================================================ *\/\n\n#rw {\n  --bg:   #07070c;\n  --surf: #0e0e17;\n  --gold: #c4a35a;\n  --gl:   rgba(196,163,90,0.16);\n  --t1:   #eae6de;\n  --t2:   #767068;\n  --t3:   #302e28;\n  --ease: cubic-bezier(0.16,1,0.3,1);\n\n  --sp1: clamp(0.5rem,  1.5vw, 1rem);\n  --sp2: clamp(1rem,    3vw,   1.75rem);\n  --sp3: clamp(1.75rem, 5vw,   3rem);\n  --sp4: clamp(3rem,    7vw,   5rem);\n  --sp5: clamp(3.5rem,  8vw,   6.5rem);\n  --col: 1200px;\n  --gap: clamp(1.25rem, 5vw, 3.5rem);\n\n  all: initial;\n  display: block;\n  background: var(--bg);\n  color: var(--t1);\n  font-family: 'Inter', system-ui, sans-serif;\n  font-size: 16px;\n  line-height: 1.5;\n  overflow-x: hidden;\n  position: relative;\n  isolation: isolate;\n  width: 100%;\n}\n\n#rw *, #rw *::before, #rw *::after {\n  box-sizing: border-box;\n}\n\n\/* The one column *\/\n.rw-in {\n  max-width: var(--col);\n  margin-left: auto;\n  margin-right: auto;\n  padding-left: clamp(1.25rem,5vw,3.5rem);\n  padding-right: clamp(1.25rem,5vw,3.5rem);\n  width: 100%;\n}\n\n\n\/* \u2500\u2500 CONWAY'S LIFE CANVAS (full page, subliminal) \u2500\u2500\u2500 *\/\n#rw-life {\n  position: absolute;\n  top: 0; left: 0;\n  width: 100%; height: 100%;\n  pointer-events: none;\n  opacity: 0.028;\n  z-index: 0;\n}\n\n\/* \u2500\u2500 HERO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.rw-hero {\n  position: relative;\n  z-index: 1;\n  padding: var(--sp5) 0 var(--sp2);\n  min-height: max(55vh, 400px);\n  display: flex;\n  align-items: center;\n  overflow: hidden;\n}\n\n\/* Gray-Scott canvas fills the hero *\/\n#rw-rd {\n  position: absolute;\n  inset: 0;\n  width: 100%; height: 100%;\n  pointer-events: none;\n  z-index: 0;\n}\n\n\/* Vignette \u2014 keeps text readable, edges dark *\/\n.rw-vignette {\n  position: absolute;\n  inset: 0;\n  background: radial-gradient(\n    ellipse 75% 65% at 50% 50%,\n    rgba(7,7,12,0.1)  20%,\n    rgba(7,7,12,0.65) 65%,\n    rgba(7,7,12,0.97) 100%\n  );\n  pointer-events: none;\n  z-index: 1;\n}\n\n.rw-hero .rw-in { position: relative; z-index: 2; text-align: center; }\n\n.rw-hero-body {\n  opacity: 0;\n  transform: translateY(20px);\n  transition: opacity 1.3s var(--ease), transform 1.3s var(--ease);\n}\n.rw-hero-body.up { opacity: 1; transform: translateY(0); }\n\n.rw-eyebrow {\n  font-size: clamp(0.6rem, 1.4vw, 0.72rem);\n  letter-spacing: 0.22em;\n  text-transform: uppercase;\n  color: var(--gold);\n  opacity: 0.6;\n  margin-bottom: var(--sp2);\n}\n\n.rw-title {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(3.5rem, 11vw, 9rem);\n  font-weight: 300;\n  line-height: 0.93;\n  letter-spacing: -0.025em;\n  color: var(--t1);\n  margin-bottom: var(--sp3);\n}\n.rw-title em { font-style: italic; color: var(--gold); }\n\n.rw-tagline {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(1rem, 2.5vw, 1.5rem);\n  font-weight: 300;\n  font-style: italic;\n  color: var(--t2);\n  line-height: 1.65;\n}\n\n.rw-law {\n  font-size: clamp(0.6rem, 1.2vw, 0.68rem);\n  letter-spacing: 0.2em;\n  text-transform: uppercase;\n  color: #9a9690;\n  margin-top: var(--sp2);\n}\n\n\/* Equation footnote \u2014 visible to those who look *\/\n.rw-equation {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(0.65rem, 1.2vw, 0.75rem);\n  font-style: italic;\n  color: var(--gold);\n  opacity: 0.45;\n  margin-top: var(--sp3);\n  letter-spacing: 0.03em;\n}\n\n\/* \u2500\u2500 THRESHOLD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.rw-threshold {\n  position: relative;\n  z-index: 1;\n  padding-bottom: var(--sp4);\n  text-align: center;\n  opacity: 0;\n  transition: opacity 0.9s ease 0.5s;\n}\n.rw-threshold.up { opacity: 1; }\n.rw-threshold .rw-in {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n.rw-stem {\n  width: 1px;\n  height: clamp(28px, 5vw, 52px);\n  background: linear-gradient(to bottom, transparent, var(--gl));\n  margin-bottom: var(--sp2);\n}\n\n.rw-threshold p {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(0.9rem, 2vw, 1.05rem);\n  font-style: italic;\n  color: var(--t2);\n  letter-spacing: 0.04em;\n}\n\n\/* \u2500\u2500 DOORS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.rw-doors {\n  position: relative;\n  z-index: 1;\n  border-top: 1px solid var(--gl);\n  border-bottom: 1px solid var(--gl);\n}\n\n.rw-door {\n  border-bottom: 1px solid rgba(196,163,90,0.07);\n  position: relative;\n  overflow: hidden;\n  cursor: pointer;\n  opacity: 0;\n  transform: translateX(-12px);\n  transition: opacity 0.65s var(--ease), transform 0.65s var(--ease);\n}\n.rw-door:last-child { border-bottom: none; }\n.rw-door.up { opacity: 1; transform: translateX(0); }\n\n.rw-door[data-w=\"0\"] { --dh: rgba(110,110,210,0.08); }\n.rw-door[data-w=\"1\"] { --dh: rgba(60,155,100,0.08);  }\n.rw-door[data-w=\"2\"] { --dh: rgba(195,130,50,0.08);  }\n.rw-door[data-w=\"3\"] { --dh: rgba(60,110,185,0.08);  }\n.rw-door[data-w=\"4\"] { --dh: rgba(180,70,70,0.08);   }\n\n.rw-door::after {\n  content: '';\n  position: absolute; inset: 0;\n  background: radial-gradient(ellipse 80% 140% at 10% 50%, var(--dh), transparent);\n  opacity: 0;\n  transition: opacity 0.55s ease;\n  pointer-events: none;\n}\n.rw-door:hover::after, .rw-door:focus-visible::after { opacity: 1; }\n\n.rw-door .rw-in {\n  padding-top:    clamp(0.75rem, 1.8vw, 1.1rem);\n  padding-bottom: clamp(0.75rem, 1.8vw, 1.1rem);\n  transition: padding 0.5s var(--ease);\n  position: relative; z-index: 1;\n}\n.rw-door:hover .rw-in, .rw-door:focus-visible .rw-in {\n  padding-top:    clamp(1.9rem, 5vw, 3.2rem);\n  padding-bottom: clamp(1.9rem, 5vw, 3.2rem);\n}\n\n.rw-door-row {\n  display: grid;\n  grid-template-columns: clamp(28px,7vw,64px) 1fr clamp(18px,4vw,30px);\n  align-items: center;\n  gap: clamp(0.75rem,3vw,2rem);\n  transition: transform 0.2s ease;\n}\n\n.rw-door-num {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(1rem,2.8vw,1.5rem);\n  font-weight: 300; font-style: italic;\n  color: var(--gold); opacity: 0.28;\n  transition: opacity 0.45s ease;\n  user-select: none; justify-self: center;\n}\n.rw-door:hover .rw-door-num, .rw-door:focus-visible .rw-door-num { opacity: 1; }\n\n.rw-door-text { min-width: 0; }\n\n.rw-door-title {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(1.2rem,3.2vw,2.2rem);\n  font-weight: 400; letter-spacing: -0.015em; line-height: 1.15;\n  color: var(--t1);\n  transition: color 0.35s ease;\n}\n.rw-door:hover .rw-door-title { color: #fff; }\n\n.rw-door-desc {\n  font-size: clamp(0.75rem,1.8vw,0.83rem);\n  font-weight: 300; color: var(--t2); line-height: 1.65;\n  max-height: 0; overflow: hidden; opacity: 0; margin-top: 0;\n  transition: max-height 0.5s var(--ease), opacity 0.4s ease 0.08s, margin-top 0.4s ease;\n}\n.rw-door:hover .rw-door-desc, .rw-door:focus-visible .rw-door-desc {\n  max-height: 5rem; opacity: 1; margin-top: 0.5rem;\n}\n\n.rw-door-arrow {\n  font-size: 1rem; color: var(--gold); opacity: 0;\n  transform: translateX(-6px);\n  transition: opacity 0.35s ease, transform 0.35s var(--ease);\n  user-select: none; justify-self: end;\n}\n.rw-door:hover .rw-door-arrow, .rw-door:focus-visible .rw-door-arrow {\n  opacity: 0.5; transform: translateX(0);\n}\n\n.rw-door:nth-child(1) { transition-delay: 0.04s; }\n.rw-door:nth-child(2) { transition-delay: 0.10s; }\n.rw-door:nth-child(3) { transition-delay: 0.16s; }\n.rw-door:nth-child(4) { transition-delay: 0.22s; }\n.rw-door:nth-child(5) { transition-delay: 0.28s; }\n\n.rw-door:focus-visible { outline: none; box-shadow: inset 0 0 0 1px rgba(196,163,90,0.3); }\n\n\/* \u2500\u2500 WORLDS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.rw-worlds { position: relative; z-index: 1; padding: calc(var(--sp5) * 1.5) 0 var(--sp5); text-align: center; }\n\n.rw-section-head {\n  margin-bottom: clamp(2.5rem,6vw,4.5rem);\n  opacity: 0; transform: translateY(14px);\n  transition: opacity 0.85s ease, transform 0.85s var(--ease);\n  text-align: center;\n}\n.rw-section-head.up { opacity: 1; transform: translateY(0); }\n\n.rw-label {\n  display: block;\n  font-size: clamp(0.6rem,1.3vw,0.68rem);\n  letter-spacing: 0.24em; text-transform: uppercase;\n  color: var(--gold); opacity: 0.5; margin-bottom: var(--sp1); text-align: center;\n}\n\n.rw-section-title {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(1.8rem,4.5vw,3rem);\n  font-weight: 300; font-style: italic; color: var(--t1); line-height: 1.15; text-align: center;\n}\n\n.rw-grid {\n  display: grid;\n  grid-template-columns: 1fr;\n  gap: clamp(2rem,5vw,3rem); background: transparent; border: none;\n}\n@media (min-width: 600px) {\n  .rw-grid { grid-template-columns: repeat(2, 1fr); }\n}\n@media (min-width: 960px) {\n  .rw-grid { grid-template-columns: repeat(3, 1fr); }\n}\n\n.rw-card {\n  background: var(--bg); padding: clamp(1.6rem,4vw,3rem); border: 1px solid var(--gl); text-align: center;\n  opacity: 0; transform: translateY(16px);\n  transition: opacity 0.75s ease, transform 0.75s var(--ease), background 0.35s ease;\n}\n.rw-card.up { opacity: 1; transform: translateY(0); }\n.rw-card:hover { background: var(--surf); }\n\n.rw-card-status {\n  font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase;\n  color: var(--gold); opacity: 0.4; margin-bottom: clamp(1rem,3vw,1.6rem);\n}\n\n.rw-card-title {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(1.05rem,2.4vw,1.3rem); font-weight: 400;\n  color: var(--t1); line-height: 1.3; margin-bottom: var(--sp1);\n}\n\n.rw-card-q {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(0.85rem,1.8vw,0.95rem); font-style: italic;\n  color: var(--t2); line-height: 1.65; margin-bottom: clamp(1.2rem,3vw,1.8rem);\n}\n\n.rw-card-meta { display: flex; flex-direction: column; gap: 0.5rem; }\n.rw-meta-row { display: flex; gap: 0.75rem; align-items: baseline; flex-wrap: wrap; justify-content: center; }\n.rw-meta-k {\n  font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase;\n  color: var(--t3); white-space: nowrap; min-width: 68px; flex-shrink: 0;\n}\n.rw-meta-v { font-size: 0.75rem; font-weight: 300; color: var(--t2); }\n\n\/* \u2500\u2500 FREEDOM \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.rw-freedom {\n  position: relative; z-index: 1; border-top: 1px solid var(--gl);\n  padding: var(--sp5) 0; opacity: 0; transition: opacity 1s ease;\n}\n.rw-freedom.up { opacity: 1; }\n.rw-freedom .rw-in { text-align: center; }\n\n.rw-freedom-stmt {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(1.1rem,2.8vw,1.75rem); font-weight: 300; font-style: italic;\n  color: var(--t2); max-width: 620px; margin: 0 auto var(--sp2); line-height: 1.72; text-align: center;\n}\n\n.rw-freedom-law {\n  font-size: clamp(0.6rem,1.2vw,0.65rem); letter-spacing: 0.2em;\n  text-transform: uppercase; color: var(--t3); text-align: center;\n}\n\n\/* \u2500\u2500 BUILD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.rw-build {\n  position: relative; z-index: 1; border-top: 1px solid var(--gl);\n  padding: var(--sp5) 0; opacity: 0; transform: translateY(16px);\n  transition: opacity 0.85s ease, transform 0.85s var(--ease);\n}\n.rw-build.up { opacity: 1; transform: translateY(0); }\n\n.rw-build .rw-in {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: clamp(1.5rem,4vw,3rem);\n}\n\n.rw-build-h {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(2.5rem,7vw,5rem); font-weight: 300; font-style: italic;\n  color: var(--t1); line-height: 1.05;\n  text-align: center;\n}\n\n.rw-invites { list-style: none; display: flex; flex-direction: column; gap: clamp(0.9rem,2.5vw,1.3rem); order: 1; flex: 1; }\n.rw-invites li {\n  font-family: 'Cormorant Garamond', Georgia, serif;\n  font-size: clamp(1rem,2.2vw,1.15rem); font-weight: 300; color: var(--t2);\n  padding-left: 1.4rem; position: relative; transition: color 0.25s ease; cursor: default;\n}\n.rw-invites li::before {\n  content: '\u2014'; position: absolute; left: 0; color: var(--gold); opacity: 0.3;\n}\n.rw-invites li:hover { color: var(--t1); }\n\n\/* \u2500\u2500 FOOTER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n.rw-foot { position: relative; z-index: 1; border-top: 1px solid rgba(196,163,90,0.05); padding: var(--sp3) 0; }\n.rw-foot .rw-in { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--sp1); }\n.rw-foot-mark { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(0.8rem,1.8vw,0.9rem); font-style: italic; color: var(--t3); }\n.rw-foot-law { font-size: clamp(0.58rem,1.2vw,0.63rem); letter-spacing: 0.2em; text-transform: uppercase; color: var(--t3); opacity: 0.4; }\n\n\/* \u2500\u2500 REDUCED MOTION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\n@media (prefers-reduced-motion: reduce) {\n  .rw-hero-body, .rw-threshold, .rw-door, .rw-section-head,\n  .rw-card, .rw-freedom, .rw-build {\n    opacity: 1 !important; transform: none !important;\n    transition: background 0.15s ease, color 0.15s ease !important;\n  }\n  #rw-rd, #rw-life { display: none; }\n}\n\n.gls{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(255,205,0,.6);transition:.15s;}\n.gls:hover{color:#ffcd00;border-bottom-color:#ffcd00;}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>\u2190 Workbench Clarkson AI Institute ResearchWorkbench Build worlds with AI. Defend the freedom to know. The human must go first. du\/dt = Du\u2207\u00b2u \u2212 uv\u00b2 + F(1\u2212u) &nbsp;\u00b7&nbsp; dv\/dt = Dv\u2207\u00b2v + uv\u00b2 \u2212 (F+k)v Where do you want to begin? I Imagine a Research World Frame a question, system, archive, laboratory, community, or future [&hellip;]<\/p>\n","protected":false},"author":256,"featured_media":0,"parent":143,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"class_list":["post-247","page","type-page","status-publish","hentry"],"coauthors":[],"author_meta":{"author_link":"https:\/\/sites.clarkson.edu\/ai-institute\/author\/scasper\/","display_name":"scasper"},"relative_dates":{"created":"Posted 3 months ago","modified":"Updated 2 months ago"},"absolute_dates":{"created":"Posted on May 27, 2026","modified":"Updated on June 25, 2026"},"absolute_dates_time":{"created":"Posted on May 27, 2026 7:45 pm","modified":"Updated on June 25, 2026 2:38 pm"},"featured_img_caption":"","featured_img":false,"series_order":"","_links":{"self":[{"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/pages\/247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/users\/256"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/comments?post=247"}],"version-history":[{"count":13,"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/pages\/247\/revisions"}],"predecessor-version":[{"id":733,"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/pages\/247\/revisions\/733"}],"up":[{"embeddable":true,"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/pages\/143"}],"wp:attachment":[{"href":"https:\/\/sites.clarkson.edu\/ai-institute\/wp-json\/wp\/v2\/media?parent=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}