Danielius and his group built an agent-based model
Our project partner was a community group based right here on Roetersstraat, the very street where the university is located.
It’s a very busy street: around 30,000 people pass through the area every single day. This shared space has different meanings for different people. For us, it’s where we study, catch a movie at Kriterion, or grab lunch. For the community group, it's where they live, where they walk their kids to primary school.
The initial question they had was: “Our street is too busy. How can we fix that?” But it wasn’t just about traffic. There was a lot of general dissatisfaction. So we began with ethnographic research to understand what was really going on.
For example, one of my group members interviewed a resident who is visually impaired. Navigating the street was extremely difficult for them. The sidewalks lack tactile indicators, and the layout is confusing and uneven. Changes in infrastructure can have a big impact on people who rely on memory to move around.
We also looked at spaces like Kriterion. It’s a central part of the neighbourhood, but also a source of noise and disturbance at times.
Streams of cyclists pour in every morning, cars drive fast, and pedestrians often don’t feel safe.
We wanted to explore all these challenges and design a tool to help think through possible improvements.
Our work was data-driven from the start. We scraped university schedules, observed foot traffic, and learned things like: most students arrive just before 9 AM (around 8:56, to be exact).
We collected data from multiple sources: class schedules, the local primary school, and city registries. That gave us a good estimate of how many people are in the area at different times of day. These data points became the foundation for our simulation.
We chose to use agent-based modelling. Instead of traditional modelling systems, you simulate individual people, ‘agents’, each with their own daily routines. I like to think of it as playing The Sims.
We built a highly local model, focused on the area between Waterlooplein and Oosterpark. Each dot in the simulation represented a person, red for cars, blue for pedestrians, green for cyclists. We used the open-source platform A/B Street, but we built our own model inside it.
You can simulate different scenarios and test different ideas. Like making the street car-free or one-way, and observe what happens: pedestrians and cyclists tend to get around faster, while car users may experience some delays.
Or turning Roetersstraat into a school street, where cars are not allowed during school hours. The results showed clear benefits for children walking or biking to school. It was faster and safer.
The results weren't just informative, it was fun. You can run the simulation and watch the street come alive at 9 AM or 5 PM. You immediately see how changes affect the flow of people.
This project wasn’t about finding the ‘best’ solution. It was about creating a tool for community science: a way for residents to experiment, explore, and shape their own environment.
We handed the model over to our community partner, along with a user guide, so they can continue testing ideas independently. They were really happy with the result.
Instead of waiting on lengthy policy processes or official studies, residents now have a hands-on way to think through possibilities. Want to add a bike lane? Restrict car traffic? Make the street one-way? The model lets you simulate it all and see the effects immediately.
It’s a gamification, a bit like the city-building games we played as kids, but rooted in real data. That’s what makes it powerful: it’s not just informative, but also accessible, playful and empowering.
What I really appreciated about this course was the freedom to try something new. Agent-based modelling wasn’t even in the curriculum, we just had one lecture about it. The assignment was to do a machine learning project, but we pitched this instead, and our lecturer supported it.
We met with our lecturer twice a week and received regular feedback. That was really helpful, especially since we weren’t following a typical approach. Other groups focused on machine learning or regression models, which are great, but we built something from scratch.
I already had some programming experience, but working with large datasets and building a database from scratch taught me a lot. Half our team had no coding experience, except for what we learned in class, so we were learning as we went. I even edited the source code of A/B Street because the original didn’t meet our needs.
But beyond technical skills, I also learned a lot about communication. We weren’t just submitting something to our teachers. We had to keep our partner informed, explain our reasoning, and collaborate with people who care deeply about their neighbourhood.
Agent-based modelling is definitely something I want to explore further. It seems like a promising tool, especially in combination with newer technologies like language-based AI agents.
One of our professors recently used large language models to analyse tweets and predict voting behaviour in the US elections. His model ended up being more accurate than traditional polling.
That kind of work really inspires me, the intersection of AI and social science has huge potential.