2025Fall, Learning, Networks, Web Application, Web Programming

Multiple Graph Representations Generator

Project Title: Multiple Graph Representations Generator

The Multiple Graph Representations Generator is a tool that seamlessly converts between different representations of a graph. It can convert between the three following formats:

  1. Edge descriptions
  2. Formal graph titles
  3. Images.

This project benefits students, educators, and textbook publishers by reducing the manual effort required to redraw or reformat graphs across tasks. It also provides a foundation for more advanced tools, such as interactive graph modification tools or AI models that can manipulate graph diagrams. Overall, the project aims to make graph representations more intuitive and connected, regardless of which format the user begins with.

Skills: Python, Graph Theory, Programming, Image Recognition and Generation, Software Architecture and Abstraction, Git, and Collaborative Programming.

What is your project about?

  • Our project began as an investigation into the CaMeRa paper (see the inspiring reference below) and the benefits of understanding a concept by interacting with it using different mediums. The application acts as a “universal translator” for graphs, which takes three different types of inputs: a graph node description, a graph title, or an image of a diagram. It then generates whatever format you need.

What are the core aspects of your project?

  • To perform the conversions, there are four key modules: a graph representation class (graph.py) that holds the description, title, and image fields. It runs an iterative loop, filling in any potential missing representations and ensuring consistency across modalities. They consist of: description_to_title(), title_to description(), description_to_imagel(), and image_to _description().
  • The design choice of 4 key modules connected by a unified set of rules was chosen due to the project’s need for modularity and extensibility. Each subsystem is independent but works together through a shared Graph class, which allows each group member to make progress without affecting others’ work. We were also free to experiment and add on new features because the software foundations were clearly divided.

What are the goals/vision for this project?

  • The overarching vision for this project is to make the different graph representations more intuitive and interchangeable, as the subject is widely used in education and various disciplines. This makes it easier not only for teaching and creating visualizations,
    but also allows learners to start with the format they’re comfortable with and build familiarity in a natural manner.

What does your project do? What was your client hoping to get out of it?

  • The project makes graph formats more understandable and makes the conversion quicker. The client hoped students would quickly and intuitively see these different representations, making the learning process easier.

What are the project requirements? How did you address the requirements?

  • Our project requirements included objectives such as multimodal conversion, a clean architecture, and reliable output. We delivered them by reviewing our project scope and architecture, ensuring all plans were appropriately implemented. We also did thorough testing of the various edge cases and made sure to check each other’s work.

Future work. If you were to continue this project, what would be the next steps?

  • There are several extensions for this project. First of all, we could enable weighted/ directed graphs and other more advanced topics, which would enable more use cases for the clientele. We could also incorporate machine learning or parallel programming to
    handle higher-intensity tasks, such as very large graphs or messy graph drawings.

 Show and describe your process to design and develop your project.

  • In total, this project spanned over 6 weeks. We began by reading the inspiration CaMeRa research paper, discussing our thoughts, and writing out different directions that we could take. First, we settled on the idea of working with graphs due to their precise and
    consistent nature.
  • We then narrowed it down to the client’s needs. We considered our three formats and had a general idea of using AI to handle the conversion processes. After further investigation, we decided to implement the custom models, which became part of our final product.
  • While programming, we narrowed our focus to undirected and unweighted graphs and set a limit on the number of nodes a graph could contain. We eventually combined the models and deployed our end application.

Talk about your challenges and achievements.

  • There were a few challenges. First, we had to coordinate the different custom models so that they produced compatible outputs. Since a different member built each system, we had to discuss our approaches and code to be able to link them properly.
    There were also issues getting the image to description system working due to the higher complexity having to utilize computer vision techniques.
  • We also had great achievements. First of all, the project feels cohesive even though we developed separate parts, and the user functionality is straightforward and useful. We were also able to implement proper software design concepts such as being modular, extensible, and consistent.
  • We also struck a good balance between a research investigation and a client-focused product. Overall, we turned a conceptually ambitious idea of converting between different graph forms into a functioning product.

Acknowledgements and References

  • We want to thank our fellow peers, Professor Eliott, Grinnell CLS, Grinnell Alum Quang Le, and the Vivero Fellows.
  • CaMeRa: A computational model of multiple representations, by Hermina J.M.Tabachneck-Schijf, Anthony M. Leonardo, Herbert A. Simon.
  • Cursor, VSCode, Claude AI, Python, NetworkX, Streamlit, MatplotLib, PIL, NumPy, OpenCV.
The views and opinions expressed on individual web pages are strictly those of their authors and are not official statements of Grinnell College. Copyright Statement.