Identify Your Data & Research Outputs

Version 5.9 by Veronika Kocher on Thursday, 03 Sep 2026 9:34

.ido{max-width:1400px;margin:0 auto;color:#322f2b}.ido *{box-sizing:border-box}
.ido-card{border:1px solid #e3ded6;border-radius:11px;background:#fcfbf8;box-shadow:0 1px 3px rgba(0,0,0,.035)}
.ido-eye{font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase}
.ido-hero{height:125px;overflow:hidden;background:#f1eee9}.ido-hero img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}
.ido-sec{margin:0 0 30px}.ido-sec h3{font-size:22px;margin:0 0 7px;color:#35312d}.ido-sec>p{color:#6a655e;line-height:1.58;max-width:1180px}
.ido-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
.ido-type{padding:15px 16px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8}.ido-type h4{font-size:17px;margin:0 0 6px;color:#35312d}.ido-type p{margin:0;color:#625d56;line-height:1.5}.ido-type ul{margin:8px 0 0 19px;padding:0;color:#625d56;line-height:1.5}
.ido-check{position:relative;padding:12px 13px 12px 37px;border:1px solid #e3ded6;border-radius:8px;background:#fffdf9;color:#504a44;line-height:1.5}.ido-check:before{content:"✓";position:absolute;left:13px;top:10px;color:#e94b13;font-weight:800}
.ido-info{padding:15px 17px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#eaf6f9;border-radius:8px;color:#365e68;line-height:1.55}.ido-info strong{color:#2d5661}
.ido-warn{padding:15px 17px;border:1px solid #efd9cc;border-left:5px solid #e94b13;background:#fff6f1;border-radius:8px;color:#67564e;line-height:1.55}.ido-warn strong{color:#744531}
.ido-rights{padding:15px 17px;border:1px solid #efdca7;border-left:5px solid #f0aa00;background:#fff9e9;border-radius:8px;color:#665a38;line-height:1.55}.ido-rights strong{color:#6d571c}
.ido-store{padding:15px 17px;border:1px solid #cfe8d8;border-left:5px solid #38b76a;background:#eff9f2;border-radius:8px;color:#45614e;line-height:1.55}.ido-store strong{color:#35543f}
.ido-tablewrap{overflow-x:auto;border-radius:9px}.ido-tbl{width:100%;border-collapse:collapse;background:#fffdf9;min-width:820px}.ido-tbl th,.ido-tbl td{border:1px solid #e3ded6;padding:10px 11px;vertical-align:top;text-align:left;line-height:1.45}.ido-tbl th{background:#f3efe8;color:#403b36}.ido-tbl td{color:#56504a}
.ido-step{padding:15px 16px;border:1px solid #e3ded6;border-top:4px solid #e94b13;border-radius:9px;background:#fcfbf8}.ido-step .n{font-size:12px;font-weight:800;color:#8a4d36;letter-spacing:.06em}.ido-step h4{font-size:17px;margin:3px 0 6px;color:#35312d}.ido-step p{margin:0;color:#625d56;line-height:1.5}
.ido-example{padding:15px 16px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8}.ido-example h4{font-size:17px;margin:0 0 6px;color:#35312d}.ido-example p{margin:0;color:#625d56;line-height:1.5}
.ido-linkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.ido-navlink{display:block;padding:10px 11px;border:1px solid #e9e4dc;border-left:3px solid #e94b13;border-radius:6px;background:#fffdf9;color:#252321;text-decoration:none;font-weight:600;line-height:1.35}.ido-navlink:hover,.ido-navlink:focus{background:#fff7f1;text-decoration:none}
.ido-service{display:block;padding:14px 15px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8;color:#322f2b;text-decoration:none}.ido-service:hover,.ido-service:focus{background:#fffdf9;text-decoration:none}.ido-service strong{display:block;margin-bottom:4px}.ido-service span{display:block;color:#625d56;line-height:1.45;font-weight:400}
.ido-chip{display:inline-block;padding:4px 8px;margin:3px 4px 3px 0;border-radius:14px;background:#f3efe8;border:1px solid #e3ded6;color:#5c5650;font-size:12px;text-decoration:none}
@media(max-width:680px){.ido-hero{height:105px}.ido-sec h3{font-size:20px}}
Research materials, documentation and project outputs
ENABLE · IDENTIFY DATA & RESEARCH OUTPUTS

Know what your project creates, collects, reuses and needs to keep

Before you can plan storage, rights, data protection, documentation, publication or preservation, you need a realistic inventory of the materials and outputs your project will work with. In artistic research this often includes much more than conventional “research data”: source material, physical objects, sketches, recordings, software, process documentation, performances, installations and the records that make them understandable later.

Start with types, not individual files. You do not need to list every photograph or document now. Identify the categories your project will create, collect or reuse, then record how each category needs to be handled.
Do not force everything into the label “data”. Different disciplines and funders use the term differently. For planning purposes, inventory data, materials, documentation and research/artistic outputs together, then distinguish what each item actually is and what rules apply to it.
STEP 1 · MAP THE MATERIAL LANDSCAPE

Identify five kinds of project material

A single item can belong to more than one category. The purpose is not perfect classification; it is to make sure nothing important disappears from your planning.

1 · Inputs & reused source material

Material that already exists before your project uses it.

  • texts, images, films, music, archives and collections
  • existing datasets, databases and corpora
  • third-party code, software, models or templates
  • found material, objects, samples or reference works

2 · Data or evidence created / collected

Recorded material produced through your research or artistic process.

  • interviews, surveys, observations and field notes
  • audio, video, photographs and scans
  • measurements, sensor logs and experimental records
  • annotations, transcripts, structured datasets or databases

3 · Process & project documentation

Records that explain how the work developed and how decisions were made.

  • sketches, notebooks, rehearsal records and drafts
  • production files, technical plans and installation instructions
  • decision logs, version histories and provenance records
  • documentation of methods, workflows and transformations

4 · Research & artistic outputs

What the project intends to deliver, publish, present or make available.

  • artworks, performances, exhibitions and installations
  • publications, articles, books, catalogues and theses
  • films, audio works, scores, designs and prototypes
  • datasets, software, code, models, websites or teaching resources

5 · Administrative & evidential records

Records that may not be research outputs but are still needed for accountability or project closure.

  • agreements, consent records and permissions
  • funder deliverables and reporting evidence
  • procurement, equipment or partner documentation
  • records of approvals, responsibilities and handover
STEP 2 · BUILD A WORKING INVENTORY

Record one row for each material or output type

Your inventory is the bridge between the project idea and the practical decisions that follow. It should be specific enough to reveal risks, dependencies and responsibilities, but simple enough to maintain.

Inventory fieldRecordWhy it matters
Type / nameA recognisable category such as “interview recordings”, “installation CAD files” or “final exhibition documentation”.Creates a shared vocabulary for the team.
OriginCreated, collected, commissioned, received from a partner, or reused from a third party.Origin affects rights, provenance and responsibilities.
Format / materialFile formats, software dependencies, physical material, analogue carrier or specialist equipment needed.Reveals technical and preservation dependencies.
ScaleApproximate quantity, duration, file size, number of objects or expected growth.Helps plan storage, transfer, backup and costs.
People & sensitivityWhether it contains personal, confidential, culturally sensitive, restricted or otherwise sensitive material.Determines access and protection requirements.
Rights / permissionsWho owns it, what licence applies, what permissions or consent exist, and what is still unresolved.Determines what can be reused, published or shared.
Working locationWhere the active copy is stored or the physical item is kept.Makes responsibility and risk visible.
Master / authoritative versionWhich file, object or record is the master and how it is distinguished from working or derivative copies.Prevents ambiguity at handover and publication.
Metadata / provenanceWhat information is needed to understand source, creator, date, context, method, version and relationships.Makes the material interpretable and reusable later.
Lifecycle decisionKeep, discard, restrict, share, publish, deposit, archive or preserve — and who decides.Connects current work to project closure and long-term access.
Useful minimum: if you can answer what it is, where it came from, who is responsible, where the master is, whether it is sensitive, what rights apply and what should happen to it at project end, you already have a strong first inventory.
STEP 3 · MAKE ARTISTIC PROCESSES VISIBLE

Identify the documentation that will make the work understandable later

For performative, spatial, process-based, participatory or otherwise ephemeral work, the work itself and its documentation are not the same thing. Decide deliberately what needs to be captured and what status that documentation has.

Performance / live work

Possible records include score or script, rehearsal material, technical rider, stage or spatial plan, photographs, audio/video documentation, performer credits, audience/participant permissions and a description of the realised event.

Installation / exhibition

Possible records include concept material, plans, CAD/3D files, component lists, media masters, installation instructions, equipment dependencies, views of the installed work, labels/credits and de-installation or re-installation information.

Design / architecture / making

Possible records include research sources, drawings, models, prototypes, material tests, fabrication files, technical specifications, photographs, iterations, decisions and final presentation files.

Participatory / interview-based work

Possible records include recruitment or participant information, consent/permissions, recordings, transcripts, participant-created material, field notes, coding/analysis, access restrictions and public-facing outputs.

Digital / computational work

Possible records include source code, dependencies, configuration, datasets, training or processing inputs, documentation, build/export files, version information, licences and the environment needed to reproduce or understand the work.

Publication / film / audio

Possible records include research material, source assets, edit/project files, rights documentation, captions/subtitles, credits, high-resolution or preservation masters, distribution derivatives and publication metadata.

STEP 4 · DISTINGUISH WHAT MUST NOT BE MIXED

These distinctions prevent problems later

Created vs. reused.
Material you create and third-party material may have very different rights and licence conditions.
Working file vs. master.
A convenient editing copy is not automatically the authoritative or preservation-quality version.
Documentation vs. artwork/output.
A photograph of a performance may document the work without being the work itself. Record the relationship explicitly.
Public vs. restricted.
A project may publish some outputs while keeping personal, confidential, embargoed or rights-restricted source material closed.
Storage vs. preservation.
A file being stored today does not mean it can still be opened, understood or trusted years later.
Retention vs. sharing.
You may need to retain material for accountability while having no permission or reason to make it public.
STEP 5 · RUN THE PROJECT INVENTORY

A practical sequence for the team

01

List expected types

Start from the proposal, work packages, methods, artistic process, deliverables and public outputs.

02

Add reused material

Include archives, existing datasets, third-party images/media, code, partner material and other inputs.

03

Mark sensitive categories

Identify personal, confidential, restricted, culturally sensitive or otherwise protected material early.

04

Identify masters

Decide which files or objects will be authoritative and how versions/derivatives will be distinguished.

05

Record rights & permissions

Note ownership, licences, consent, partner terms and unresolved rights before dissemination is planned.

06

Estimate scale & dependencies

Flag large volumes, specialist formats, software, hardware, equipment, physical storage and transfer needs.

07

Connect to storage & DMP

Use the inventory to assign working locations, access rules, backup, documentation and lifecycle actions.

08

Review at milestones

Update the inventory when methods, partners, outputs, formats, rights, people or publication plans change.

KEY QUESTIONS

Questions every project should be able to answer

What existing material will we reuse, and under what conditions?
What new data, records, objects or documentation will we create or collect?
Which outputs are contractual/funder deliverables and which are additional project outputs?
What is digital, analogue, physical, spatial or dependent on specialist software/equipment?
Which material contains personal, confidential, restricted or sensitive information?
Who owns or controls each type, and what permissions/licences are needed?
Which version will be the master or authoritative record?
What metadata or contextual information is needed to understand the material later?
What should be shared, restricted, retained, discarded, deposited or preserved at project end?
Who is responsible for each decision and for the final handover?
STOP & CHECK

Common inventory gaps

Only final deliverables are listed.
Source material, process documentation and research evidence are missing from the plan.
“Everything is in the cloud.”
No one has identified the actual service, owner, access model, backup or master copy.
Ephemeral work has no documentation strategy.
The project may finish without enough information to understand, present or preserve what happened.
Third-party material has no provenance.
Source, creator, licence or permission cannot be reconstructed later.
Personal or confidential material is mixed with publication files.
Access decisions become difficult and accidental disclosure becomes more likely.
The master is unclear.
Several exports or copies exist but no authoritative version has been designated.
Physical objects are absent from the data plan.
Location, ownership, condition, documentation or handover responsibilities have not been recorded.
Specialist formats are treated as self-explanatory.
Software, hardware, plugins or context needed to reopen the work are not documented.
SERVICES & TOOLS

Use the inventory to involve the right support

NEXT · TURN THE INVENTORY INTO A PLAN

Related Service Navigator topics

Need help deciding what belongs in the inventory? Bring a one-paragraph project description, your planned methods/activities, expected outputs, likely source material and any funder requirements. For funded art/research projects, Support Kunst und Forschung can help connect these elements to the wider project plan.
Search terms & related topics
research data · artistic research data · research outputs · artistic outputs · project materials · source material · reused data · third-party material · documentation · process documentation · performance documentation · installation documentation · interviews · recordings · photographs · video · audio · datasets · databases · software · source code · models · prototypes · physical objects · analogue material · master files · authoritative version · provenance · metadata · rights · copyright · licences · consent · personal data · sensitive data · confidential data · file formats · storage · backup · preservation · repository · data management plan · DMP · deliverables · funder requirements · project inventory · output inventory · handover
[data-sn-equal-height-managed],
[data-sn-first-section-aligned]{
  box-sizing:border-box;
}
(function(){
  "use strict";

  var MOBILE_MAX=767;
  var ROW_TOLERANCE=6;
  var MIN_W=150;
  var MIN_H=36;
  var MAX_PARENT_CHILDREN=16;
  var SEARCH_DEPTH=5;

  var root=
    document.getElementById("xwikicontent")||
    document.querySelector(".xwiki-rendering-content")||
    document.querySelector("main")||
    document.body;

  if(!root)return;

  var heightManaged=new Set();
  var sectionManaged=new Set();
  var originalMinHeight=new WeakMap();
  var originalMarginTop=new WeakMap();
  var raf=0;

  function num(v){
    var n=parseFloat(v);
    return Number.isFinite(n)?n:0;
  }

  function visible(el,minW,minH){
    if(!el||el.nodeType!==1)return false;

    var s=getComputedStyle(el);

    if(
      s.display==="none"||
      s.visibility==="hidden"||
      Number(s.opacity)===0
    ){
      return false;
    }

    var r=el.getBoundingClientRect();

    return (
      r.width>=(minW||1)&&
      r.height>=(minH||1)
    );
  }

  function excluded(el){
    return (
      !el.matches||
      el.matches(
        "button,input,select,textarea,option,label,img,svg,canvas,table,thead,tbody,tfoot,tr,td,th,summary,script,style,noscript,template,.btn,.chip,[role=button]"
      )
    );
  }

  function namedLikeBox(el){
    var c=
      typeof el.className==="string"
        ? el.className
        : "";

    return /(^|[s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([s_-]|$)/i.test(c);
  }

  function boxLike(el){
    if(!visible(el,MIN_W,MIN_H)||excluded(el))return false;

    var s=getComputedStyle(el);
    var r=el.getBoundingClientRect();

    var border=
      num(s.borderTopWidth)+
      num(s.borderRightWidth)+
      num(s.borderBottomWidth)+
      num(s.borderLeftWidth);

    var radius=Math.max(
      num(s.borderTopLeftRadius),
      num(s.borderTopRightRadius),
      num(s.borderBottomLeftRadius),
      num(s.borderBottomRightRadius)
    );

    var bg=
      s.backgroundColor&&
      s.backgroundColor!=="rgba(0, 0, 0, 0)"&&
      s.backgroundColor!=="transparent";

    var shadow=
      s.boxShadow&&
      s.boxShadow!=="none";

    return (
      namedLikeBox(el)||
      border>=1||
      (bg&&radius>=3)||
      (shadow&&r.width>=180)
    );
  }

  function saveOriginal(el,map,property){
    if(map.has(el))return;

    map.set(el,{
      value:el.style.getPropertyValue(property),
      priority:el.style.getPropertyPriority(property)
    });
  }

  function restoreOriginal(el,map,property){
    var original=map.get(el);

    if(original&&original.value){
      el.style.setProperty(
        property,
        original.value,
        original.priority||""
      );
    }else{
      el.style.removeProperty(property);
    }
  }

  function reset(){
    heightManaged.forEach(function(el){
      restoreOriginal(
        el,
        originalMinHeight,
        "min-height"
      );

      el.removeAttribute(
        "data-sn-equal-height-managed"
      );
    });

    sectionManaged.forEach(function(el){
      restoreOriginal(
        el,
        originalMarginTop,
        "margin-top"
      );

      el.removeAttribute(
        "data-sn-first-section-aligned"
      );
    });

    heightManaged.clear();
    sectionManaged.clear();
  }

  function pickTarget(child){
    if(!visible(child,MIN_W,MIN_H))return null;

    if(boxLike(child)){
      return child;
    }

    var cr=child.getBoundingClientRect();
    var q=[];

    Array.from(child.children||[]).forEach(function(el){
      q.push({el:el,depth:1});
    });

    var best=null;
    var bestScore=-Infinity;

    while(q.length){
      var item=q.shift();
      var el=item.el;

      if(!visible(el,MIN_W,MIN_H))continue;

      var r=el.getBoundingClientRect();

      if(
        r.width>=cr.width*.68&&
        boxLike(el)
      ){
        var widthFit=
          1-Math.min(
            1,
            Math.abs(cr.width-r.width)/
            Math.max(1,cr.width)
          );

        var topFit=
          1-Math.min(
            1,
            Math.abs(cr.top-r.top)/100
          );

        var score=
          widthFit*6+
          topFit*3+
          Math.min(r.height,900)/450+
          Math.min(r.width*r.height,900000)/900000;

        if(score>bestScore){
          best=el;
          bestScore=score;
        }
      }

      if(item.depth0;});

    if(widths.length<2)return false;

    var minWidth=Math.min.apply(Math,widths);
    var maxWidth=Math.max.apply(Math,widths);

    return (
      maxWidth/
      Math.max(1,minWidth)<=
      1.9
    );
  }

  function normalizeText(text){
    return String(text||"")
      .replace(/s+/g," ")
      .trim()
      .toUpperCase();
  }

  function exactKnownFirstSection(el){
    var text=normalizeText(el.textContent);

    return (
      text==="HIER STARTEN"||
      text==="ORGANISIEREN & DOKUMENTIEREN"||
      text==="ENTSCHEIDEN"||
      text==="START HERE"||
      text==="GET STARTED"||
      text==="ORGANISE & DOCUMENT"||
      text==="ORGANIZE & DOCUMENT"||
      text==="DECIDE"
    );
  }

  function visuallyFirstSectionBar(card){
    var cardRect=card.getBoundingClientRect();
    var candidates=[];

    Array.from(
      card.querySelectorAll(
        "div,p,span,strong,h3,h4,h5,h6"
      )
    ).forEach(function(el){
      if(!visible(el,20,6))return;
      if(excluded(el))return;

      var r=el.getBoundingClientRect();
      var relativeTop=r.top-cardRect.top;

      if(
        relativeTop<45||
        relativeTop>cardRect.height*.72
      ){
        return;
      }

      var widthRatio=
        r.width/
        Math.max(1,cardRect.width);

      if(
        widthRatio<.55||
        widthRatio>1.05||
        r.height>54
      ){
        return;
      }

      var text=normalizeText(el.textContent);

      if(
        text.length<2||
        text.length>90
      ){
        return;
      }

      var style=getComputedStyle(el);

      var bg=
        style.backgroundColor&&
        style.backgroundColor!=="rgba(0, 0, 0, 0)"&&
        style.backgroundColor!=="transparent";

      var border=
        num(style.borderTopWidth)+
        num(style.borderRightWidth)+
        num(style.borderBottomWidth)+
        num(style.borderLeftWidth);

      var mostlyUpper=
        text.length>=3&&
        text===text.toUpperCase();

      var exact=exactKnownFirstSection(el);

      var score=
        (exact?20:0)+
        (bg?6:0)+
        (border>=1?2:0)+
        (mostlyUpper?4:0)+
        (num(style.fontWeight)>=600?1:0);

      if(score>=7){
        candidates.push({
          el:el,
          relativeTop:relativeTop,
          width:r.width,
          score:score
        });
      }
    });

    if(!candidates.length)return null;

    candidates.sort(function(a,b){
      if(a.score!==b.score)return b.score-a.score;
      if(Math.abs(a.relativeTop-b.relativeTop)>3){
        return a.relativeTop-b.relativeTop;
      }
      return b.width-a.width;
    });

    // For exact known labels always prefer the earliest exact match.
    var exacts=candidates.filter(function(c){
      return exactKnownFirstSection(c.el);
    });

    if(exacts.length){
      exacts.sort(function(a,b){
        return a.relativeTop-b.relativeTop||b.width-a.width;
      });
      return exacts[0].el;
    }

    // Generic fallback: earliest high-confidence bar.
    candidates.sort(function(a,b){
      return a.relativeTop-b.relativeTop||b.score-a.score||b.width-a.width;
    });

    return candidates[0].el;
  }

  function alignFirstSections(cards){
    var rows=
      cards.map(function(card){
        var bar=
          visuallyFirstSectionBar(card);

        if(!bar)return null;

        var cardRect=
          card.getBoundingClientRect();

        var barRect=
          bar.getBoundingClientRect();

        return {
          card:card,
          bar:bar,
          relativeTop:
            barRect.top-cardRect.top,
          label:
            normalizeText(bar.textContent)
        };
      });

    // Conservative: only align when every card in the horizontal row
    // has a reliable first section bar.
    if(
      rows.some(function(row){
        return !row;
      })
    ){
      return null;
    }

    var targetTop=
      Math.max.apply(
        Math,
        rows.map(function(row){
          return row.relativeTop;
        })
      );

    rows.forEach(function(row){
      var delta=
        targetTop-
        row.relativeTop;

      if(delta<=1)return;

      saveOriginal(
        row.bar,
        originalMarginTop,
        "margin-top"
      );

      var currentMargin=
        num(
          getComputedStyle(
            row.bar
          ).marginTop
        );

      row.bar.style.setProperty(
        "margin-top",
        (
          currentMargin+
          delta
        )+"px"
      );

      row.bar.setAttribute(
        "data-sn-first-section-aligned",
        "4"
      );

      sectionManaged.add(row.bar);
    });

    return {
      labels:
        rows.map(function(row){
          return row.label;
        }),
      targetRelativeTop:
        Math.round(targetTop)
    };
  }

  function applyGroup(group){
    if(!validHorizontalGroup(group)){
      return null;
    }

    var cards=[];
    var seen=new Set();

    group.entries.forEach(function(entry){
      if(!seen.has(entry.target)){
        seen.add(entry.target);
        cards.push(entry.target);
      }
    });

    if(cards.length<2)return null;

    var firstSection=
      alignFirstSections(cards);

    // The section alignment can change natural card heights.
    // Measure only afterwards.
    var maxHeight=0;

    cards.forEach(function(card){
      maxHeight=Math.max(
        maxHeight,
        card.getBoundingClientRect().height
      );
    });

    maxHeight=Math.ceil(maxHeight);

    if(maxHeight=2&&
          parent.children.length<=MAX_PARENT_CHILDREN
        );
      });

    var touched=new Set();

    parents.forEach(function(parent){
      var entries=[];

      Array.from(parent.children).forEach(function(child){
        if(!visible(child,MIN_W,MIN_H))return;

        var target=pickTarget(child);
        if(!target)return;

        entries.push({
          target:target,
          rect:target.getBoundingClientRect()
        });
      });

      if(entries.length<2)return;

      groupsByVisualRow(entries).forEach(function(group){
        if(!validHorizontalGroup(group))return;

        var signature=
          group.entries.map(function(entry){
            return entry.target;
          });

        if(
          !signature.some(function(el){
            return !touched.has(el);
          })
        ){
          return;
        }

        var applied=
          applyGroup(group);

        if(applied){
          signature.forEach(function(el){
            touched.add(el);
          });
        }
      });
    });
  }

  function schedule(){
    if(raf)cancelAnimationFrame(raf);

    raf=requestAnimationFrame(function(){
      raf=requestAnimationFrame(function(){
        raf=0;
        run();
      });
    });
  }

  addEventListener("resize",schedule,{passive:true});
  addEventListener("load",schedule,{once:true});

  root.addEventListener(
    "click",
    function(){
      setTimeout(schedule,0);
    },
    true
  );

  Array.from(root.querySelectorAll("img")).forEach(function(img){
    if(!img.complete){
      img.addEventListener("load",schedule,{once:true});
    }
  });

  if(document.fonts&&document.fonts.ready){
    document.fonts.ready.then(schedule);
  }

  schedule();
  setTimeout(schedule,200);
  setTimeout(schedule,650);
  setTimeout(schedule,1400);
})();