<?xml version="1.0" encoding="UTF-8"?><ns2:project xmlns:ns1="http://gtr.rcuk.ac.uk/gtr/api" xmlns:ns2="http://gtr.rcuk.ac.uk/gtr/api/project" xmlns:ns3="http://gtr.rcuk.ac.uk/gtr/api/fund" xmlns:ns4="http://gtr.rcuk.ac.uk/gtr/api/person" xmlns:ns5="http://gtr.rcuk.ac.uk/gtr/api/project/outcome" xmlns:ns6="http://gtr.rcuk.ac.uk/gtr/api/organisation" ns1:created="2026-06-03T15:52:43Z" ns1:href="http://gtr.ukri.org/gtr/api/projects/6AD8A111-F5ED-431C-974B-04784DB8F4D6" ns1:id="6AD8A111-F5ED-431C-974B-04784DB8F4D6"><ns1:links><ns1:link ns1:href="http://gtr.ukri.org/gtr/api/persons/C8D8E77E-BED3-48AB-8510-A90A28100DED" ns1:rel="PM_PER"/><ns1:link ns1:href="http://gtr.ukri.org/gtr/api/organisations/626EF025-AFCD-431F-BB34-F1D903D265FE" ns1:rel="LEAD_ORG"/><ns1:link ns1:href="http://gtr.ukri.org/gtr/api/organisations/626EF025-AFCD-431F-BB34-F1D903D265FE" ns1:rel="PARTICIPANT_ORG"/><ns1:link ns1:end="2024-06-29T23:00:00Z" ns1:href="http://gtr.ukri.org/gtr/api/funds/3863BDD8-52C3-4741-900F-2A6B865EF2D4" ns1:rel="FUND" ns1:start="2023-06-30T23:00:00Z"/></ns1:links><ns2:identifiers><ns2:identifier ns2:type="RCUK">10071952</ns2:identifier></ns2:identifiers><ns2:title>WhiteBox: Immediately see your code's behaviour laid out across time</ns2:title><ns2:status>Closed</ns2:status><ns2:grantCategory>Collaborative R&amp;D</ns2:grantCategory><ns2:leadFunder>Innovate UK</ns2:leadFunder><ns2:abstractText>**Problem Context** 
Software errors are frustrating for users, financially damaging for businesses, and occasionally even fatal. They occur in large part because software is so complex. Debugging is the process of finding the cause of errors based on some initial knowledge of their symptoms. 
Existing debuggers primarily show single instants in time _after_ the symptoms have presented themselves. The programmer then repeatedly runs the code to progressively earlier points, stopping when some data is modified or a line of code run, until the source of error is positively identified (assuming all goes well). This is laborious: no wonder that debugging comprises half of development work (Britton et al., 2013). Time is not explicitly represented, despite being central to answering, &amp;quot;what series of changes/events caused this?&amp;quot;. Another tool, profilers, visualizes running functions on a timeline but has no knowledge of the program's data.

**Product Context** 
WhiteBox blurs the lines between conventional tools and adds new components, creating a whole greater than the sum of its parts. 
WhiteBox continually updates a timeline visualisation of data changes and control flow by &amp;quot;just-in-time&amp;quot; compiling and linking C/C++ code as it is edited: running the new version and &amp;quot;auto-debugging&amp;quot; it.

By providing immediate feedback with both birds-eye and detailed views of changes across time, WhiteBox gives developers repeated context for the code they are working on, taming its complexity and improving their understanding.

**Project** 
WhiteBox is currently based around a model of repeatedly editing and inspecting single functions. This is useful in many contexts, particularly in education, where programs often act as consistent processing pipelines: converting inputs to outputs in a manner not sensitive to being rerun many times. In business settings, however, it is common to make programs that run continuously, updating in response to user input, i.e. interactive applications. This requires a new interaction model, which this project will address.

This is not just a UI redesign over existing technology (as valuable as that can be). We will carefully refactor and expand our existing proprietary architecture to handle the new requirements; we will tune custom data structures and algorithms to efficiently process the huge volume of data; and we will finalise and improve designs for entirely novel interaction methods to give users the power to explore the recorded information.

WhiteBox introduced data timelines to the world of software tools. It must be the first to make them a viable workflow for interactive software.</ns2:abstractText></ns2:project>