Inspiration

During exam periods, students waste a significant amount of time searching for available study spaces, car parks, and places to eat, study, or rest across campus and the city. The core problem isn’t a lack of space, but a lack of real-time, reliable information about what’s actually available. By providing live occupancy data and integrating it directly with maps and travel tools, this solution allows students to plan where they’re going before they set off, choose the most efficient route, and avoid unnecessary walking, driving, or delays—making day-to-day movement around campus and the city far more efficient.

What it does

FlowSpace presents the available study spaces in a building (e.g. library), which are integrated in a map. It includes data on past study spaces and predicts future occupancy. Users can query the nearest study spot currently empty or at any scheduled time, which is filtered through location and the size of the study group.

How we built it

Used OpenCV and pretrained object classification models for processing of frame data from a camera. The classification result is stored in a database and ported to the webapp - toggling the availability of spaces in the setup.

Built a React + TypeScript frontend (using Vite) that visualises real-time library seat availability, backed by a Flask + Python computer-vision pipeline. The system simulates camera input, aggregates occupancy with temporal smoothing, serves live data via an API, and updates an interactive floor map and zone stats in real time.

Used mysql to track the data of each study space, building and desk. Wrote SELECT statements with the help of claude code. Wrote queries for complex prediction of future state of the study spaces to find optimal study space.

Challenges we ran into

When choosing an appropriate classification model, there were two main candidates: MobileNet and Faster R-CNN. During early testing phases, both models performed inconsistently - either classifying with weak confidence or misclassifying objects completely. From this, we modified our network architecture to abstract identification into classification.

Frontend–backend integration bugs (wrong ports, env vars not reloading), Keeping backend state live and synced so UI visibly updates in real time.

What we learned

While performing the desk occupancy classification, we recognized the importance of sacrificing certain details and only extract the essential information. Due to the time-limiting nature of the Hackathon, we simplified our algorithm to just detect if objects are present, instead of classifying each individual object. Additionally, we understood the importance of structuring data well, in order to implement systems that can scale from a micro level to a macro level. Teamwork and developing clear end-to-end requirements ensured the project vision and goals were successfully realised.

What's next for FlowSpace

Students can select study space based on noise level (if they prefer quiet or more social spaces). This monitoring can be done with a microphone, ADC and signal processing. Temperature, light and air quality sensors can also be integrated to maximize the student's comfort and productivity. The occupancy data can also be extended from a student tool to the management level. When overcrowded zones are identified, more furniture can be moved to this space, with more cleaning/ ventilation. Although this is currently for Imperial Campus only, it can be extended to other campuses/ buildings/ cities to not just find study spaces, but spaces to eat, rest and hangout. This is especially applicable for people who travel / are not familiar with a certain region, and they can use FlowSpace to find spots.

Built With

Share this project:

Updates