{"id":21372,"date":"2025-05-04T05:04:51","date_gmt":"2025-05-04T05:04:51","guid":{"rendered":"https:\/\/www.yard.global\/?page_id=21372"},"modified":"2025-08-30T20:45:53","modified_gmt":"2025-08-30T20:45:53","slug":"knowledge-base","status":"publish","type":"page","link":"https:\/\/www.yard.global\/knowledge-base\/","title":{"rendered":"YARD Knowledge Base"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"21372\" class=\"elementor elementor-21372\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-19601ee elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"19601ee\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3d72d06\" data-id=\"3d72d06\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6e16242 elementor-widget elementor-widget-bootstrap-021\" data-id=\"6e16242\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"bootstrap-021.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t<section class=\"bootstrap-elementor-shortcodes\" >\n            \n\t\t\t\n                            \n\n<div class=\"spacer-5\"><\/div>\n\n<h1 class=\"mb-3\">Knowledge Base<\/h1>\n\n<p>\nThings you need to know about YARD.\n<\/p>\n\n<div class=\"row\">\n    <div class=\"col-lg-5\">\n        <div class=\"d-flex flex-column\">\n            <form action=\"\/\" class=\"d-flex\" method=\"GET\">\n                <input name=\"s\" class=\"form-control me-2 input-lg ps-3 pe-3\" type=\"search\" placeholder=\"\" aria-label=\"\" autofocus>\n                <button class=\"btn btn-outline-primary btn-lg\" type=\"submit\">Find&nbsp;documents<\/button>\n            <\/form>\n        <\/div>\n\n            <\/div>\n<\/div>\n\n<div class=\"spacer-5\"><\/div>\n<div class=\"spacer-5\"><\/div>\n\n<div class=\"row yard-doc\">\n                                            \n            <div class=\"col-lg-6\">\n                <div class=\"yard-doc-header\">\n                    <h1 class=\"h2\">About YARD<\/h1>\n                <\/div>\n                <div class=\"yard-doc-body\">\n                    <ul class=\"mb-5\">\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/disconnected-in-a-connected-world\/\"><i class=\"fa fa-file me-2\"><\/i>Disconnected in a Connected World<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/yard-embraces-automation-and-ai\/\"><i class=\"fa fa-file me-2\"><\/i>YARD embraces automation and AI<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/what-solutions-does-yard-provide\/\"><i class=\"fa fa-file me-2\"><\/i>What solutions does YARD provide?<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/what-means-that-yard-is-in-beta-mode\/\"><i class=\"fa fa-file me-2\"><\/i>What means YARD is in beta mode?<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/how-can-i-add-an-event\/\"><i class=\"fa fa-file me-2\"><\/i>How can I add an event?<\/a><\/li>\n                                        <\/ul>\n                    <div class=\"spacer-3\"><\/div>\n                <\/div>\n            <\/div>\n\n                                                                                                                                                \n            <div class=\"col-lg-6\">\n                <div class=\"yard-doc-header\">\n                    <h1 class=\"h2\">YARD Calendar<\/h1>\n                <\/div>\n                <div class=\"yard-doc-body\">\n                    <ul class=\"mb-5\">\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/how-can-i-promote-an-event-or-my-company\/\"><i class=\"fa fa-file me-2\"><\/i>How can I promote an event or my company?<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/why-does-the-world-need-a-yard-calendar\/\"><i class=\"fa fa-file me-2\"><\/i>Why does the world need a YARD Calendar?<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/how-can-i-customize-a-calendar\/\"><i class=\"fa fa-file me-2\"><\/i>How can I customize a calendar?<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/how-can-i-add-an-event\/\"><i class=\"fa fa-file me-2\"><\/i>How can I add an event?<\/a><\/li>\n                                        <\/ul>\n                    <div class=\"spacer-3\"><\/div>\n                <\/div>\n            <\/div>\n\n                                                            \n            <div class=\"col-lg-6\">\n                <div class=\"yard-doc-header\">\n                    <h1 class=\"h2\">YARD Event Explorer<\/h1>\n                <\/div>\n                <div class=\"yard-doc-body\">\n                    <ul class=\"mb-5\">\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/how-can-i-promote-an-event-or-my-company\/\"><i class=\"fa fa-file me-2\"><\/i>How can I promote an event or my company?<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/how-can-i-add-an-event\/\"><i class=\"fa fa-file me-2\"><\/i>How can I add an event?<\/a><\/li>\n                                            <li><a href=\"https:\/\/www.yard.global\/doc\/what-is-the-event-explorer\/\"><i class=\"fa fa-file me-2\"><\/i>What is the Event Explorer?<\/a><\/li>\n                                        <\/ul>\n                    <div class=\"spacer-3\"><\/div>\n                <\/div>\n            <\/div>\n\n                    <\/div> \n\nHaving a question? <a href=\"\/contact\/\">We'd love to hear from you<\/a>\n\n<div class=\"spacer-5\"><\/div>            \n\t\t\t\n            \t\t<\/section>\n\n        \t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3a4fcd3 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"3a4fcd3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1e1a97f\" data-id=\"1e1a97f\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-19d442b elementor-widget elementor-widget-bootstrap-021\" data-id=\"19d442b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"bootstrap-021.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\n\t\t<section class=\"bootstrap-elementor-shortcodes\" >\n            \n\t\t\t\n                            <!-- YARD Hero: logo + text above canvas with stronger shadows -->\n<div class=\"yard-animation-wrapper position-relative w-100\" style=\"height:50svh; background:#cfdce6; overflow:hidden;\">\n  <canvas id=\"yardFlowCanvas\"\n          class=\"position-absolute top-0 start-0 w-100 h-100\"\n          style=\"z-index:0; pointer-events:none;\"><\/canvas>\n\n  <!-- Full overlay for centered logo and text -->\n  <div id=\"yard-hero-center\"\n       class=\"position-absolute top-0 start-0 w-100 h-100 d-flex flex-column align-items-center justify-content-center text-center\"\n       style=\"z-index:2;\">\n       \n    <!-- Logo with heavy black shadow -->\n    <!--img src=\"\/wp-content\/uploads\/2025\/02\/yard-logo-red-beta.svg\"\n         alt=\"YARD Logo\"\n         style=\"max-width:260px; opacity:.98;\n                filter: drop-shadow(0 0 10px rgba(0,0,0,1))\n                        drop-shadow(0 0 20px rgba(0,0,0,0.9))\n                        drop-shadow(0 0 30px rgba(0,0,0,0.8));\"-->\n\n    <!-- Tagline with strong shadow -->\n    <p class=\"mt-3 text-light fs-1\"\n       style=\"opacity:.92; letter-spacing:.4px;\n              text-shadow: 0 0 8px rgba(0,0,0,1),\n                           0 0 16px rgba(0,0,0,0.6),\n                           0 0 24px rgba(0,0,0,0.6);\">\n      <a href=\"\/about-us\/\" class=\"text-light text-decoration-none\">Connected, <span style=\"color:#ed0000;\">Your<\/span>&nbsp;Way<\/a>\n    <\/p>\n  <\/div>\n<\/div>\n\n\n\n\n\n\n<script>\n;(() => {\n  var canvas = document.getElementById(\"yardFlowCanvas\")\n  var ctx = canvas.getContext(\"2d\", { alpha:true, desynchronized:true })\n\n  var hero = document.getElementById(\"yard-hero-center\")\n  var isTouch = \"ontouchstart\" in window || navigator.maxTouchPoints > 0\n  var prefersReduced = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n  var DPR = Math.min(window.devicePixelRatio || 1, 2)\n\n  \/\/ Theme (dimmer dots, better text readability)\n  var THEME = {\n    bgTop: \"#cfdce6\",\n    bgBottom: \"#839bae\",\n    ecoFillA: \"rgba(40, 120, 220, 0.05)\",\n    ecoFillB: \"rgba(20, 80, 180, 0.045)\",\n    ecoStroke: \"rgba(140, 200, 255, 0.14)\",\n    dot: \"#ed0000\",\n    dotGlow: \"rgba(170, 25, 25, 0.22)\",\n    link: \"rgba(20, 20, 20,0.1)\",\n    linkGlow: \"rgba(50,160,220,0.1)\",\n    edgeGlow: \"rgba(70,130,255,0.16)\"\n  }\n\n  \/\/ Timing\n  var TARGET_FPS = isTouch ? 30 : 60\n  var FRAME_MS = 1000 \/ TARGET_FPS\n  var lastFrameTime = 0\n\n  \/\/ Ecosystems (organic blobs)\n  var ECO_COUNT = isTouch ? 3 : 5\n  var ecosystems = [] \/\/ {cx,cy,baseR,harm[],phase,drift}\n  var morphSpeed = 0.8\n\n  \/\/ Dots (slower + dimmer)\n  var DOT_COUNT = isTouch ? 220 : 460\n  var DOT_SIZE_MIN = 1.8\n  var DOT_SIZE_MAX = 3.6\n  var WANDER_SPEED = isTouch ? 0.08 : 0.10\n  var CROSS_CHANCE = isTouch ? 0.005 : 0.007    \/\/ start cross between ecosystems\n  var CROSS_SPEED = isTouch ? 0.007 : 0.009\n  var EXIT_CHANCE  = isTouch ? 0.002 : 0.003    \/\/ sometimes leave the entire scene\n  var JITTER = 0.025\n  var LINK_NEAR = 85\n  var LINK_PROB = 0.18\n\n  \/\/ Enter\/Exit\n  var trails = []              \/\/ {life, pts:[]}\n  var TRAIL_DECAY = isTouch ? 0.017 : 0.012\n  var relations = {}\n  var relationsTotal = 0\n\n  \/\/ State\n  var CW = 0, CH = 0\n  var dots = [] \/\/ {x,y,size,mode:\"wander\"|\"cross\"|\"exit\",vx,vy,eco,t,path:{p0,c,p1},targetEco,respawnAt}\n\n  \/\/ Logo exclusion (keep text readable)\n  var cxHero = 0, cyHero = 0, heroRadius = 160\n\n  function rand(a,b){ return a + Math.random()*(b-a) }\n\n  function updateHeroCenter(){\n    \/\/ get hero center in viewport\n    var rect = hero.getBoundingClientRect()\n    cxHero = rect.left + rect.width\/2\n    cyHero = rect.top + rect.height\/2\n    \/\/ soften exclusion radius on mobile\n    heroRadius = Math.max(120, Math.min(CW,CH) * (isTouch ? 0.16 : 0.14))\n  }\n\n  function getCSSSize(){\n    var w = canvas.clientWidth, h = canvas.clientHeight\n    if (w < 2 || h < 2){ w = window.innerWidth; h = window.innerHeight }\n    return { w:w, h:h }\n  }\n\n  function resize(){\n    var css = getCSSSize()\n    CW = Math.max(1, css.w)\n    CH = Math.max(1, css.h)\n    canvas.width = Math.floor(CW * DPR)\n    canvas.height = Math.floor(CH * DPR)\n    ctx.setTransform(DPR, 0, 0, DPR, 0, 0)\n\n    buildEcosystems()\n    seedDots()\n    updateHeroCenter()\n    drawFrame(performance.now())\n  }\n\n  \/\/ Build non-geometric, morphing organic shapes using harmonics\n  function buildEcosystems(){\n    ecosystems = []\n    var base = Math.min(CW, CH)\n    var layoutR = base * 0.28\n    var centers = []\n\n    if (ECO_COUNT === 3){\n      var cx = CW*0.5, cy = CH*0.48\n      centers.push([cx, cy - layoutR*0.45])\n      centers.push([cx - layoutR*0.7, cy + layoutR*0.25])\n      centers.push([cx + layoutR*0.7, cy + layoutR*0.25])\n    } else {\n      var cx = CW*0.5, cy = CH*0.5\n      centers.push([cx, cy])\n      centers.push([cx - layoutR, cy - layoutR*0.55])\n      centers.push([cx + layoutR, cy - layoutR*0.55])\n      centers.push([cx - layoutR, cy + layoutR*0.55])\n      centers.push([cx + layoutR, cy + layoutR*0.55])\n    }\n\n    for (var i=0;i<ECO_COUNT;i++){\n      var c = centers[i % centers.length]\n      ecosystems.push({\n        cx: c[0] + rand(-18,18),\n        cy: c[1] + rand(-12,12),\n        baseR: rand(base*0.22, base*0.30),\n        harm: [\n          { k: 2, amp: rand(0.08, 0.16), spd: rand(0.4, 0.8), ph: rand(0, 6.28) },\n          { k: 3, amp: rand(0.05, 0.12), spd: rand(0.5, 0.9), ph: rand(0, 6.28) },\n          { k: 5, amp: rand(0.04, 0.10), spd: rand(0.6, 1.0), ph: rand(0, 6.28) }\n        ],\n        phase: rand(0, 1000),\n        drift: { ax: rand(-0.22,0.22), ay: rand(-0.22,0.22), rot: rand(-0.0025,0.0025) }\n      })\n    }\n  }\n\n  function ecoRadius(eco, theta, t){\n    \/\/ organic radius: baseR * (1 + sum amps*sin(k*theta + ph + t*spd))\n    var r = eco.baseR\n    for (var i=0;i<eco.harm.length;i++){\n      var h = eco.harm[i]\n      r *= 1 + h.amp * Math.sin(h.k*theta + h.ph + t*h.spd)\n    }\n    return r\n  }\n\n  function drawEcosystem(eco, t){\n    var cx = eco.cx + Math.sin(t*0.6 + eco.phase)*eco.drift.ax*16\n    var cy = eco.cy + Math.cos(t*0.5 + eco.phase)*eco.drift.ay*16\n    var rot = eco.drift.rot * t\n\n    ctx.save()\n    ctx.translate(cx, cy)\n    ctx.rotate(rot)\n\n    \/\/ pass A\n    ctx.beginPath()\n    for (var a=0; a<=64; a++){\n      var theta = (a\/64)*Math.PI*2\n      var r = ecoRadius(eco, theta, t*morphSpeed) * 0.98\n      var x = Math.cos(theta)*r\n      var y = Math.sin(theta)*r*rand(0.995,1.005)\n      if (a === 0) ctx.moveTo(x,y); else ctx.lineTo(x,y)\n    }\n    ctx.closePath()\n    ctx.fillStyle = THEME.ecoFillA\n    ctx.fill()\n\n    \/\/ pass B (slightly scaled for subtle texture)\n    ctx.scale(1.03, 0.97)\n    ctx.beginPath()\n    for (var b=0; b<=64; b++){\n      var th = (b\/64)*Math.PI*2\n      var r2 = ecoRadius(eco, th+0.12, t*morphSpeed) * 1.02\n      var x2 = Math.cos(th)*r2\n      var y2 = Math.sin(th)*r2\n      if (b === 0) ctx.moveTo(x2,y2); else ctx.lineTo(x2,y2)\n    }\n    ctx.closePath()\n    ctx.fillStyle = THEME.ecoFillB\n    ctx.fill()\n\n    \/\/ faint outline\n    ctx.lineWidth = 2\n    ctx.strokeStyle = THEME.ecoStroke\n    ctx.stroke()\n\n    ctx.restore()\n  }\n\n  \/\/ approximate random point inside ecosystem\n  function pointInEco(eco, t){\n    var cx = eco.cx + Math.sin(t*0.6 + eco.phase)*eco.drift.ax*16\n    var cy = eco.cy + Math.cos(t*0.5 + eco.phase)*eco.drift.ay*16\n    var th = rand(0, Math.PI*2)\n    var r = ecoRadius(eco, th, t*morphSpeed) * Math.sqrt(Math.random()) * 0.85\n    return { x: cx + Math.cos(th)*r, y: cy + Math.sin(th)*r }\n  }\n\n  \/\/ Dots\n  function seedDots(){\n    dots = []\n    var margin = Math.max(120, Math.min(CW,CH)*0.2)\n    for (var i=0;i<DOT_COUNT;i++){\n      \/\/ enter from edges with inward heading\n      var side = Math.floor(Math.random()*4)\n      var x, y, ang\n      if (side === 0){ x = rand(-margin, CW + margin); y = -margin; ang = rand(Math.PI*0.25, Math.PI*0.75) }\n      if (side === 1){ x = CW + margin; y = rand(-margin, CH + margin); ang = rand(Math.PI*1.1, Math.PI*1.9) }\n      if (side === 2){ x = rand(-margin, CW + margin); y = CH + margin; ang = rand(-Math.PI*0.75, -Math.PI*0.25) }\n      if (side === 3){ x = -margin; y = rand(-margin, CH + margin); ang = rand(-Math.PI*0.15, Math.PI*0.15) }\n      var size = rand(DOT_SIZE_MIN, DOT_SIZE_MAX)\n      var spd = WANDER_SPEED * (0.8 + Math.random()*0.5)\n      var ecoIdx = Math.floor(Math.random()*ECO_COUNT)\n      dots.push({\n        x:x, y:y, size:size,\n        mode:\"wander\",\n        vx:Math.cos(ang)*spd, vy:Math.sin(ang)*spd,\n        eco: ecoIdx, t:0, path:null, targetEco:null, respawnAt:0\n      })\n    }\n  }\n\n  function withinHero(x,y){\n    var dx = x - cxHero\n    var dy = y - cyHero\n    return (dx*dx + dy*dy) < (heroRadius*heroRadius)\n  }\n\n  function respawnFromEdge(d, now){\n    var margin = Math.max(120, Math.min(CW,CH)*0.2)\n    var side = Math.floor(Math.random()*4)\n    var x, y, ang\n    if (side === 0){ x = rand(-margin, CW + margin); y = -margin; ang = rand(Math.PI*0.25, Math.PI*0.75) }\n    if (side === 1){ x = CW + margin; y = rand(-margin, CH + margin); ang = rand(Math.PI*1.1, Math.PI*1.9) }\n    if (side === 2){ x = rand(-margin, CW + margin); y = CH + margin; ang = rand(-Math.PI*0.75, -Math.PI*0.25) }\n    if (side === 3){ x = -margin; y = rand(-margin, CH + margin); ang = rand(-Math.PI*0.15, Math.PI*0.15) }\n    var spd = WANDER_SPEED * (0.8 + Math.random()*0.5)\n    d.x = x; d.y = y; d.vx = Math.cos(ang)*spd; d.vy = Math.sin(ang)*spd\n    d.mode = \"wander\"; d.respawnAt = 0\n  }\n\n  function triggerCross(d, now){\n    if (ECO_COUNT < 2) return false\n    var target = d.eco, guard = 0\n    while (target === d.eco && guard++ < 6) target = Math.floor(Math.random()*ECO_COUNT)\n    var fromEco = ecosystems[d.eco]\n    var toEco = ecosystems[target]\n    var t = now*0.001\n    var start = { x: d.x, y: d.y }\n    var end = pointInEco(toEco, t)\n    var midx = (fromEco.cx + toEco.cx)\/2 + rand(-60,60)\n    var midy = (fromEco.cy + toEco.cy)\/2 + rand(-60,60)\n    var ang = Math.atan2(end.y - start.y, end.x - start.x) + Math.PI\/2\n    var ctrl = { x: midx + Math.cos(ang)*rand(40,120), y: midy + Math.sin(ang)*rand(40,120) }\n\n    d.mode = \"cross\"\n    d.targetEco = target\n    d.t = 0\n    d.path = { p0:start, c:ctrl, p1:end }\n\n    \/\/ trail\n    var pts = []\n    for (var tt=0; tt<=1; tt+=0.08){\n      var inv = 1 - tt\n      var x = inv*inv*start.x + 2*inv*tt*ctrl.x + tt*tt*end.x\n      var y = inv*inv*start.y + 2*inv*tt*ctrl.y + tt*tt*end.y\n      pts.push({x:x, y:y})\n    }\n    trails.push({ life:1, pts:pts })\n    if (trails.length > 140) trails.shift()\n    return true\n  }\n\n  function triggerExit(d){\n    d.mode = \"exit\"\n    \/\/ head to nearest edge and leave\n    var distances = [\n      { side:0, dist: Math.abs(d.y) },                 \/\/ top\n      { side:1, dist: Math.abs(CW - d.x) },            \/\/ right\n      { side:2, dist: Math.abs(CH - d.y) },            \/\/ bottom\n      { side:3, dist: Math.abs(d.x) }                  \/\/ left\n    ]\n    distances.sort(function(a,b){ return a.dist - b.dist })\n    var side = distances[0].side\n    var target\n    if (side === 0) target = { x: d.x, y: -200 }\n    if (side === 1) target = { x: CW + 200, y: d.y }\n    if (side === 2) target = { x: d.x, y: CH + 200 }\n    if (side === 3) target = { x: -200, y: d.y }\n    var ang = Math.atan2(target.y - d.y, target.x - d.x)\n    var spd = WANDER_SPEED * 1.2\n    d.vx = Math.cos(ang)*spd\n    d.vy = Math.sin(ang)*spd\n    \/\/ set delayed respawn (so leaving is visible)\n    d.respawnAt = performance.now() + rand(900, 1800)\n  }\n\n  function updateRelations(from, to){\n    var key = from + \"->\" + to\n    if (!relations[key]) relations[key] = 0\n    relations[key] += 1\n    relationsTotal += 1\n    var el = document.getElementById(\"yard-relations-counter\")\n    if (el) el.textContent = \"relations updated: \" + relationsTotal\n  }\n\n  \/\/ Step\n  function step(ts){\n    var now = ts\n    var t = ts*0.001\n\n    for (var i=0;i<dots.length;i++){\n      var d = dots[i]\n\n      if (d.mode === \"wander\"){\n        d.x += d.vx + rand(-JITTER, JITTER)\n        d.y += d.vy + rand(-JITTER, JITTER)\n\n        \/\/ avoid logo area\n        if (withinHero(d.x, d.y)){\n          var ang = Math.atan2(d.y - cyHero, d.x - cxHero)\n          d.x += Math.cos(ang) * 1.2\n          d.y += Math.sin(ang) * 1.2\n        }\n\n        if (!prefersReduced){\n          if (Math.random() < CROSS_CHANCE) triggerCross(d, now)\n          else if (Math.random() < EXIT_CHANCE) triggerExit(d)\n        }\n\n      } else if (d.mode === \"cross\" && d.path){\n        var nt = d.t, inv = 1 - nt\n        d.x = inv*inv*d.path.p0.x + 2*inv*nt*d.path.c.x + nt*nt*d.path.p1.x\n        d.y = inv*inv*d.path.p0.y + 2*inv*nt*d.path.c.y + nt*nt*d.path.p1.y\n        d.t += CROSS_SPEED\n        if (d.t >= 1){\n          var from = d.eco\n          d.eco = d.targetEco\n          d.mode = \"wander\"\n          d.targetEco = null\n          d.path = null\n          var angR = Math.random()*Math.PI*2\n          var spdR = WANDER_SPEED * (0.8 + Math.random()*0.5)\n          d.vx = Math.cos(angR)*spdR\n          d.vy = Math.sin(angR)*spdR\n          updateRelations(from, d.eco)\n        }\n\n      } else if (d.mode === \"exit\"){\n        d.x += d.vx\n        d.y += d.vy\n        if (now >= d.respawnAt){\n          respawnFromEdge(d, now)\n        }\n      }\n\n      \/\/ hard off-screen fail-safe\n      var margin = Math.max(140, Math.min(CW,CH)*0.22)\n      if (d.x < -margin*2 || d.x > CW + margin*2 || d.y < -margin*2 || d.y > CH + margin*2){\n        if (d.mode !== \"exit\") d.respawnAt = performance.now() + 800\n        if (performance.now() >= d.respawnAt) respawnFromEdge(d, now)\n      }\n    }\n\n    \/\/ trails decay\n    for (var k=0;k<trails.length;k++){\n      trails[k].life -= TRAIL_DECAY\n      if (trails[k].life < 0) trails[k].life = 0\n    }\n    trails = trails.filter(function(tl){ return tl.life > 0 })\n  }\n\n  \/\/ Render\n  function drawBackground(ts){\n    var g = ctx.createLinearGradient(0,0,0,CH)\n    g.addColorStop(0, THEME.bgTop)\n    g.addColorStop(1, THEME.bgBottom)\n    ctx.fillStyle = g\n    ctx.fillRect(0,0,CW,CH)\n\n    \/\/ edge glow hints for entry\/exit\n    var glow = THEME.edgeGlow\n    var edgeThickness = 18\n    var gt = ctx.createLinearGradient(0,0,0,edgeThickness)\n    gt.addColorStop(0, glow); gt.addColorStop(1, \"rgba(0,0,0,0)\")\n    ctx.fillStyle = gt; ctx.fillRect(0,0,CW,edgeThickness)\n    var gb = ctx.createLinearGradient(0,CH-edgeThickness,0,CH)\n    gb.addColorStop(0, \"rgba(0,0,0,0)\"); gb.addColorStop(1, glow)\n    ctx.fillStyle = gb; ctx.fillRect(0,CH-edgeThickness,CW,edgeThickness)\n    var gl = ctx.createLinearGradient(0,0,edgeThickness,0)\n    gl.addColorStop(0, glow); gl.addColorStop(1, \"rgba(0,0,0,0)\")\n    ctx.fillStyle = gl; ctx.fillRect(0,0,edgeThickness,CH)\n    var gr = ctx.createLinearGradient(CW-edgeThickness,0,CW,0)\n    gr.addColorStop(0, \"rgba(0,0,0,0)\"); gr.addColorStop(1, glow)\n    ctx.fillStyle = gr; ctx.fillRect(CW-edgeThickness,0,edgeThickness,CH)\n\n    \/\/ morphing organic ecosystems\n    var t = ts*0.001\n    for (var i=0;i<ecosystems.length;i++){\n      drawEcosystem(ecosystems[i], t)\n    }\n  }\n\n  function drawTrails(){\n    if (!trails.length) return\n    for (var i=0;i<trails.length;i++){\n      var tr = trails[i]\n      if (tr.pts.length < 2) continue\n      ctx.globalAlpha = tr.life\n      ctx.lineWidth = 2\n      ctx.strokeStyle = THEME.link\n      ctx.beginPath()\n      ctx.moveTo(tr.pts[0].x, tr.pts[0].y)\n      for (var j=1;j<tr.pts.length;j++) ctx.lineTo(tr.pts[j].x, tr.pts[j].y)\n      ctx.stroke()\n      ctx.globalAlpha = tr.life * 0.6\n      ctx.lineWidth = 6\n      ctx.strokeStyle = THEME.linkGlow\n      ctx.beginPath()\n      ctx.moveTo(tr.pts[0].x, tr.pts[0].y)\n      for (var k=1;k<tr.pts.length;k++) ctx.lineTo(tr.pts[k].x, tr.pts[k].y)\n      ctx.stroke()\n      ctx.globalAlpha = 1\n    }\n  }\n\n  function drawDots(){\n    \/\/ local links\n    for (var i=0;i<dots.length;i+=3){\n      var a = dots[i]\n      for (var j=i+1; j<Math.min(i+10, dots.length); j++){\n        if (Math.random() > LINK_PROB) continue\n        var b = dots[j]\n        var dx = a.x - b.x, dy = a.y - b.y\n        var d2 = dx*dx + dy*dy\n        if (d2 < LINK_NEAR*LINK_NEAR){\n          ctx.lineWidth = 1\n          ctx.strokeStyle = THEME.link\n          ctx.beginPath()\n          ctx.moveTo(a.x, a.y)\n          ctx.lineTo(b.x, b.y)\n          ctx.stroke()\n        }\n      }\n    }\n\n    \/\/ dots with softer glow and global alpha\n    ctx.save()\n    ctx.globalAlpha = 0.85\n    for (var k=0;k<dots.length;k++){\n      var d = dots[k]\n      \/\/ fade near logo a bit more\n      var fade = withinHero(d.x, d.y) ? 0.5 : 1\n      ctx.beginPath()\n      ctx.arc(d.x, d.y, d.size, 0, Math.PI*2)\n      ctx.fillStyle = THEME.dot\n      ctx.shadowColor = THEME.dotGlow\n      ctx.shadowBlur = 8\n      if (fade < 1){ ctx.globalAlpha = 0.6 }\n      ctx.fill()\n      if (fade < 1){ ctx.globalAlpha = 0.85 }\n    }\n    ctx.restore()\n  }\n\n  function drawFrame(ts){\n    ctx.clearRect(0,0,CW,CH)\n    drawBackground(ts)\n    drawTrails()\n    drawDots()\n  }\n\n  function frame(ts){\n    if (prefersReduced){ drawFrame(ts); return }\n    if (ts - lastFrameTime < FRAME_MS){ requestAnimationFrame(frame); return }\n    lastFrameTime = ts\n    step(ts)\n    drawFrame(ts)\n    requestAnimationFrame(frame)\n  }\n\n  \/\/ Init\n  var resizeTO\n  window.addEventListener(\"resize\", function(){\n    clearTimeout(resizeTO)\n    resizeTO = setTimeout(function(){ resize(); updateHeroCenter() }, 80)\n  })\n\n  if (document.readyState === \"loading\"){\n    document.addEventListener(\"DOMContentLoaded\", function(){ resize(); updateHeroCenter() })\n  } else {\n    setTimeout(function(){ resize(); updateHeroCenter() }, 0)\n  }\n\n  if (!prefersReduced) requestAnimationFrame(frame)\n})();\n<\/script>\n            \n\t\t\t\n            \t\t<\/section>\n\n        \t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p> [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/www.yard.global\/doc\/what-is-the-event-explorer\/\">Read More&#8230;<span class=\"screen-reader-text\"> from What is the Event Explorer?<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":21348,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"tags":[],"class_list":["post-21372","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>YARD Knowledge Base - YARD<\/title>\n<meta name=\"description\" content=\"Your knowledge base for guides, FAQs, and expert insights on YARD, discovering events, data exchange, digital identity, and platform features.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.yard.global\/knowledge-base\/\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.yard.global\\\/knowledge-base\\\/\",\"url\":\"https:\\\/\\\/www.yard.global\\\/knowledge-base\\\/\",\"name\":\"YARD Knowledge Base - YARD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.yard.global\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.yard.global\\\/knowledge-base\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.yard.global\\\/knowledge-base\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.yard.global\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/yard-smart-simple-yours-mobile.jpg\",\"datePublished\":\"2025-05-04T05:04:51+00:00\",\"dateModified\":\"2025-08-30T20:45:53+00:00\",\"description\":\"Your knowledge base for guides, FAQs, and expert insights on YARD, discovering events, data exchange, digital identity, and platform features.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.yard.global\\\/knowledge-base\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.yard.global\\\/knowledge-base\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.yard.global\\\/knowledge-base\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.yard.global\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/yard-smart-simple-yours-mobile.jpg\",\"contentUrl\":\"https:\\\/\\\/www.yard.global\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/yard-smart-simple-yours-mobile.jpg\",\"width\":1200,\"height\":760,\"caption\":\"YARD - Smart, Simple, Yours. Business man using an app for finding finance events, business events, and crypto events.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.yard.global\\\/knowledge-base\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.yard.global\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"YARD Knowledge Base\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.yard.global\\\/#website\",\"url\":\"https:\\\/\\\/www.yard.global\\\/\",\"name\":\"YARD\",\"description\":\"Connecting You Across Silos\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.yard.global\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.yard.global\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.yard.global\\\/#organization\",\"name\":\"YARD\",\"url\":\"https:\\\/\\\/www.yard.global\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.yard.global\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.yard.global\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/cropped-yard-icon.png\",\"contentUrl\":\"https:\\\/\\\/www.yard.global\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/cropped-yard-icon.png\",\"width\":512,\"height\":512,\"caption\":\"YARD\"},\"image\":{\"@id\":\"https:\\\/\\\/www.yard.global\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/yard_events\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/yard-events\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"YARD Knowledge Base - YARD","description":"Your knowledge base for guides, FAQs, and expert insights on YARD, discovering events, data exchange, digital identity, and platform features.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.yard.global\/knowledge-base\/","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.yard.global\/knowledge-base\/","url":"https:\/\/www.yard.global\/knowledge-base\/","name":"YARD Knowledge Base - YARD","isPartOf":{"@id":"https:\/\/www.yard.global\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.yard.global\/knowledge-base\/#primaryimage"},"image":{"@id":"https:\/\/www.yard.global\/knowledge-base\/#primaryimage"},"thumbnailUrl":"https:\/\/www.yard.global\/wp-content\/uploads\/2025\/05\/yard-smart-simple-yours-mobile.jpg","datePublished":"2025-05-04T05:04:51+00:00","dateModified":"2025-08-30T20:45:53+00:00","description":"Your knowledge base for guides, FAQs, and expert insights on YARD, discovering events, data exchange, digital identity, and platform features.","breadcrumb":{"@id":"https:\/\/www.yard.global\/knowledge-base\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yard.global\/knowledge-base\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.yard.global\/knowledge-base\/#primaryimage","url":"https:\/\/www.yard.global\/wp-content\/uploads\/2025\/05\/yard-smart-simple-yours-mobile.jpg","contentUrl":"https:\/\/www.yard.global\/wp-content\/uploads\/2025\/05\/yard-smart-simple-yours-mobile.jpg","width":1200,"height":760,"caption":"YARD - Smart, Simple, Yours. Business man using an app for finding finance events, business events, and crypto events."},{"@type":"BreadcrumbList","@id":"https:\/\/www.yard.global\/knowledge-base\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.yard.global\/"},{"@type":"ListItem","position":2,"name":"YARD Knowledge Base"}]},{"@type":"WebSite","@id":"https:\/\/www.yard.global\/#website","url":"https:\/\/www.yard.global\/","name":"YARD","description":"Connecting You Across Silos","publisher":{"@id":"https:\/\/www.yard.global\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yard.global\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.yard.global\/#organization","name":"YARD","url":"https:\/\/www.yard.global\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.yard.global\/#\/schema\/logo\/image\/","url":"https:\/\/www.yard.global\/wp-content\/uploads\/2025\/02\/cropped-yard-icon.png","contentUrl":"https:\/\/www.yard.global\/wp-content\/uploads\/2025\/02\/cropped-yard-icon.png","width":512,"height":512,"caption":"YARD"},"image":{"@id":"https:\/\/www.yard.global\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/yard_events","https:\/\/www.linkedin.com\/company\/yard-events\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.yard.global\/api\/wp\/v2\/pages\/21372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yard.global\/api\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.yard.global\/api\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.yard.global\/api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yard.global\/api\/wp\/v2\/comments?post=21372"}],"version-history":[{"count":15,"href":"https:\/\/www.yard.global\/api\/wp\/v2\/pages\/21372\/revisions"}],"predecessor-version":[{"id":30490,"href":"https:\/\/www.yard.global\/api\/wp\/v2\/pages\/21372\/revisions\/30490"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.yard.global\/api\/wp\/v2\/media\/21348"}],"wp:attachment":[{"href":"https:\/\/www.yard.global\/api\/wp\/v2\/media?parent=21372"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yard.global\/api\/wp\/v2\/tags?post=21372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}