From 438ec05dff84c759a4d93c4279b3868402d14e33 Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Sun, 2 Nov 2025 12:35:29 +0100 Subject: [PATCH 01/12] gsoc-guide --- docs/GSoC.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 docs/GSoC.md diff --git a/docs/GSoC.md b/docs/GSoC.md new file mode 100644 index 00000000000..559fb991044 --- /dev/null +++ b/docs/GSoC.md @@ -0,0 +1,52 @@ +# GSoC at Mesa — Candidates Guide + +## What is Mesa? +Mesa is an open-source Python library for agent-based modeling, ideal for simulating complex systems and exploring emergent behaviors. It lets you quickly build models using core components (e.g., spatial grids, schedulers) or custom implementations, visualize them in a browser, and analyze results with Python’s data tools. The goal: make simulations accessible so we can better understand and tackle complex problems. + +## Mesa and GSoC +Mesa has participated in Google Summer of Code since 2024 and has had 7 contributors to date. + +**Last year’s projects (4) :** + +| Project | Contributor | Discussion Link | +|----------|--------------|-----------------| +| **Mesa Frames upgrade** | [Ben](https://github.com/Ben-geo) | [Discussion #151](https://github.com/projectmesa/mesa-frames/discussions/151) | +| **Mesa front-end upgrade** | [Sahil](https://github.com/Sahil-Chhoker) | [Discussion #2772](https://github.com/projectmesa/mesa/discussions/2772) | +| **Mesa LLM** | [Colin](https://github.com/colinfrisch) | [Discussion #2773](https://github.com/projectmesa/mesa/discussions/2773) | +| **Mesa LLM** | [Sanika](https://github.com/sanika-n) | [Discussion #2775](https://github.com/projectmesa/mesa/discussions/2775) | + +Note : for the Mesa LLM project, the two candidates were selected to work on different aspects of the project + + +## Making a proposal for Mesa + +You can start with the official GSoC guidelines on the [proposals](https://google.github.io/gsocguides/student/writing-a-proposal). + +For Mesa, making a great proposal implies: + +- Referring in a very specific way to current Mesa features and demonstrating hands-on experience with Mesa. Don’t hesitate to visit the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). +- Putting in a lot of reflection on use cases, target audience, and project fit: Mesa is a library designed to be used by a wide range of people. Who is your project for? How will it help them? How will it integrate seamlessly into Mesa? +- Startup mindset: show that you’re open to new ideas while maintaining flexibility in direction. +- Putting in precise code examples for the features that you would like to implement. +- Showing that your idea can work: linking to one or more functional POCs (proofs of concept) is highly appreciated in a proposal. +- The Mesa team is looking for long-term commitment to community building that doesn’t stop at GSoC. Show that you can be invested by contributing to the community! + +You can check out proposals from last year’s selected GSoC contributors in the links provided in the last section, and here are a few non-Mesa-specific [proposals](https://github.com/SammanSarkar/GSoC_archive_2025) that have been accepted in other organizations. + +--- + +## Maximize your chances + +The best way to show that you can do things is to do things. It is very helpful to build one or more agent-based models with Mesa to not only explore all the incredible things you can do with it, but also to show that you know how to handle it. + +Also, as generative AI becomes more capable of writing convincing text, it has become increasingly difficult to differentiate a genuine proposal from an AI-generated one. Thus, **a large part of evaluation will also be based on your contributions to Mesa**. + +[Contributing to Mesa](https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md) shows that you genuinely understand the project, how it works, and that you won’t spend the first month of GSoC figuring out the basics : you’ll be ready to code for your own project! Plus, digging into Mesa allows you to refine your proposal and make it more relevant and interesting for the dev team to read. The candidates who contribute meaningfully have by far the best chances of being selected. + +--- + +## Tips from previous GSoC contributors at Mesa + +- **Ask relevant questions:** asking questions is good, but asking *good* questions showcases your motivation. If you don’t know something, first check the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). In the best case, you’ll find your answer; if not, you can ask a specific question, showing your interest and drive to deepen your knowledge of Mesa. +- **Be nice and helpful:** the open-source community is built on transparency and goodwill. Helping people demonstrates that it’s pleasant to work with you. Plus, it also showcases your knowledge of Mesa ;) +- **Clarify scope with mentors:** if you can’t figure out the scope of the project, it’s completely okay to talk to the mentors about the most pressing matters and give them priority. This helps you focus on what matters and reduce fluff in your proposal. From e59ed868cd8c8dc529cd83ec5d08321a07589e66 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 2 Nov 2025 11:37:57 +0000 Subject: [PATCH 02/12] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/GSoC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GSoC.md b/docs/GSoC.md index 559fb991044..b2a86c0ddbf 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -39,7 +39,7 @@ You can check out proposals from last year’s selected GSoC contributors in the The best way to show that you can do things is to do things. It is very helpful to build one or more agent-based models with Mesa to not only explore all the incredible things you can do with it, but also to show that you know how to handle it. -Also, as generative AI becomes more capable of writing convincing text, it has become increasingly difficult to differentiate a genuine proposal from an AI-generated one. Thus, **a large part of evaluation will also be based on your contributions to Mesa**. +Also, as generative AI becomes more capable of writing convincing text, it has become increasingly difficult to differentiate a genuine proposal from an AI-generated one. Thus, **a large part of evaluation will also be based on your contributions to Mesa**. [Contributing to Mesa](https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md) shows that you genuinely understand the project, how it works, and that you won’t spend the first month of GSoC figuring out the basics : you’ll be ready to code for your own project! Plus, digging into Mesa allows you to refine your proposal and make it more relevant and interesting for the dev team to read. The candidates who contribute meaningfully have by far the best chances of being selected. From 3afaf1f23543a4186bd6ed1633ddd82b90e30128 Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Sun, 2 Nov 2025 13:25:37 +0100 Subject: [PATCH 03/12] Update docs/GSoC.md Co-authored-by: Ewout ter Hoeven <15776622+EwoutH@users.noreply.github.com> --- docs/GSoC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GSoC.md b/docs/GSoC.md index b2a86c0ddbf..d9305caaaec 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -6,7 +6,7 @@ Mesa is an open-source Python library for agent-based modeling, ideal for simula ## Mesa and GSoC Mesa has participated in Google Summer of Code since 2024 and has had 7 contributors to date. -**Last year’s projects (4) :** +### 2025 projects | Project | Contributor | Discussion Link | |----------|--------------|-----------------| From c6f033c46790424af176b110048c726364700f03 Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Sun, 2 Nov 2025 13:25:47 +0100 Subject: [PATCH 04/12] Update docs/GSoC.md Co-authored-by: Ewout ter Hoeven <15776622+EwoutH@users.noreply.github.com> --- docs/GSoC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GSoC.md b/docs/GSoC.md index d9305caaaec..a1044233f89 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -26,7 +26,7 @@ For Mesa, making a great proposal implies: - Referring in a very specific way to current Mesa features and demonstrating hands-on experience with Mesa. Don’t hesitate to visit the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). - Putting in a lot of reflection on use cases, target audience, and project fit: Mesa is a library designed to be used by a wide range of people. Who is your project for? How will it help them? How will it integrate seamlessly into Mesa? -- Startup mindset: show that you’re open to new ideas while maintaining flexibility in direction. +- Exploratory and curious mindset: show that you’re open to new ideas while maintaining flexibility in direction. - Putting in precise code examples for the features that you would like to implement. - Showing that your idea can work: linking to one or more functional POCs (proofs of concept) is highly appreciated in a proposal. - The Mesa team is looking for long-term commitment to community building that doesn’t stop at GSoC. Show that you can be invested by contributing to the community! From 6f3a63e6090cc20ef1912f127f1168882eb1b795 Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Sun, 2 Nov 2025 13:26:06 +0100 Subject: [PATCH 05/12] Update docs/GSoC.md Co-authored-by: Ewout ter Hoeven <15776622+EwoutH@users.noreply.github.com> --- docs/GSoC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GSoC.md b/docs/GSoC.md index a1044233f89..715e9212c77 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -24,7 +24,7 @@ You can start with the official GSoC guidelines on the [proposals](https://googl For Mesa, making a great proposal implies: -- Referring in a very specific way to current Mesa features and demonstrating hands-on experience with Mesa. Don’t hesitate to visit the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). +- Building on current Mesa features and demonstrating how it will integrate with them. Hands-on experience with Mesa and building ABMs helps a lot with that. Don’t hesitate to visit the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). - Putting in a lot of reflection on use cases, target audience, and project fit: Mesa is a library designed to be used by a wide range of people. Who is your project for? How will it help them? How will it integrate seamlessly into Mesa? - Exploratory and curious mindset: show that you’re open to new ideas while maintaining flexibility in direction. - Putting in precise code examples for the features that you would like to implement. From 495a93f4fff4154d03399483d4bebb8bb4eef14e Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Sun, 2 Nov 2025 13:26:17 +0100 Subject: [PATCH 06/12] Update docs/GSoC.md Co-authored-by: Ewout ter Hoeven <15776622+EwoutH@users.noreply.github.com> --- docs/GSoC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GSoC.md b/docs/GSoC.md index 715e9212c77..0d1d657f91a 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -27,7 +27,7 @@ For Mesa, making a great proposal implies: - Building on current Mesa features and demonstrating how it will integrate with them. Hands-on experience with Mesa and building ABMs helps a lot with that. Don’t hesitate to visit the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). - Putting in a lot of reflection on use cases, target audience, and project fit: Mesa is a library designed to be used by a wide range of people. Who is your project for? How will it help them? How will it integrate seamlessly into Mesa? - Exploratory and curious mindset: show that you’re open to new ideas while maintaining flexibility in direction. -- Putting in precise code examples for the features that you would like to implement. +- Putting in precise code examples for the features that you would like to implement. Especially small usage examples (how users can use the feature in a model) are really appreciated. - Showing that your idea can work: linking to one or more functional POCs (proofs of concept) is highly appreciated in a proposal. - The Mesa team is looking for long-term commitment to community building that doesn’t stop at GSoC. Show that you can be invested by contributing to the community! From 886d00983aaf532f60836c6cc998bb78e037ca14 Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Sun, 2 Nov 2025 13:26:32 +0100 Subject: [PATCH 07/12] Update docs/GSoC.md Co-authored-by: Ewout ter Hoeven <15776622+EwoutH@users.noreply.github.com> --- docs/GSoC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GSoC.md b/docs/GSoC.md index 0d1d657f91a..9594ef4afab 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -28,7 +28,7 @@ For Mesa, making a great proposal implies: - Putting in a lot of reflection on use cases, target audience, and project fit: Mesa is a library designed to be used by a wide range of people. Who is your project for? How will it help them? How will it integrate seamlessly into Mesa? - Exploratory and curious mindset: show that you’re open to new ideas while maintaining flexibility in direction. - Putting in precise code examples for the features that you would like to implement. Especially small usage examples (how users can use the feature in a model) are really appreciated. -- Showing that your idea can work: linking to one or more functional POCs (proofs of concept) is highly appreciated in a proposal. +- Showing that your idea can work: linking to one or more functional POCs (proofs of concept) and/or example models is highly appreciated in a proposal. - The Mesa team is looking for long-term commitment to community building that doesn’t stop at GSoC. Show that you can be invested by contributing to the community! You can check out proposals from last year’s selected GSoC contributors in the links provided in the last section, and here are a few non-Mesa-specific [proposals](https://github.com/SammanSarkar/GSoC_archive_2025) that have been accepted in other organizations. From ab285f9ac3d6eb877707d2f4ecd0d80667add931 Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Sun, 2 Nov 2025 13:26:58 +0100 Subject: [PATCH 08/12] Update docs/GSoC.md Co-authored-by: Ewout ter Hoeven <15776622+EwoutH@users.noreply.github.com> --- docs/GSoC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GSoC.md b/docs/GSoC.md index 9594ef4afab..dfae1838426 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -29,7 +29,7 @@ For Mesa, making a great proposal implies: - Exploratory and curious mindset: show that you’re open to new ideas while maintaining flexibility in direction. - Putting in precise code examples for the features that you would like to implement. Especially small usage examples (how users can use the feature in a model) are really appreciated. - Showing that your idea can work: linking to one or more functional POCs (proofs of concept) and/or example models is highly appreciated in a proposal. -- The Mesa team is looking for long-term commitment to community building that doesn’t stop at GSoC. Show that you can be invested by contributing to the community! +- The Mesa team is looking for long-term commitment to community building that doesn’t stop at GSoC. Show that you can be invested by contributing to and engaging with the community! You can check out proposals from last year’s selected GSoC contributors in the links provided in the last section, and here are a few non-Mesa-specific [proposals](https://github.com/SammanSarkar/GSoC_archive_2025) that have been accepted in other organizations. From 1ff05796149431da5afe65a057169b928901509a Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Mon, 3 Nov 2025 17:27:44 +0100 Subject: [PATCH 09/12] feedback-based updates --- docs/GSoC.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/GSoC.md b/docs/GSoC.md index dfae1838426..94f9a14e1b8 100644 --- a/docs/GSoC.md +++ b/docs/GSoC.md @@ -1,7 +1,7 @@ # GSoC at Mesa — Candidates Guide ## What is Mesa? -Mesa is an open-source Python library for agent-based modeling, ideal for simulating complex systems and exploring emergent behaviors. It lets you quickly build models using core components (e.g., spatial grids, schedulers) or custom implementations, visualize them in a browser, and analyze results with Python’s data tools. The goal: make simulations accessible so we can better understand and tackle complex problems. +Mesa is an open-source Python library for agent-based modeling (ABM), ideal for simulating complex systems and exploring emergent behaviors. It lets you quickly build models using core components (e.g., spatial grids, schedulers) or custom implementations, visualize them in a browser, and analyze results with Python’s data tools. The goal: make simulations accessible so we can better understand and tackle complex problems. ## Mesa and GSoC Mesa has participated in Google Summer of Code since 2024 and has had 7 contributors to date. @@ -49,4 +49,4 @@ Also, as generative AI becomes more capable of writing convincing text, it has b - **Ask relevant questions:** asking questions is good, but asking *good* questions showcases your motivation. If you don’t know something, first check the [Mesa GitHub](https://github.com/projectmesa/mesa) and [documentation](https://mesa.readthedocs.io/latest/). In the best case, you’ll find your answer; if not, you can ask a specific question, showing your interest and drive to deepen your knowledge of Mesa. - **Be nice and helpful:** the open-source community is built on transparency and goodwill. Helping people demonstrates that it’s pleasant to work with you. Plus, it also showcases your knowledge of Mesa ;) -- **Clarify scope with mentors:** if you can’t figure out the scope of the project, it’s completely okay to talk to the mentors about the most pressing matters and give them priority. This helps you focus on what matters and reduce fluff in your proposal. +- **Clarify scope with mentors:** if you can’t figure out the scope of the project, it’s completely okay to talk to the mentors about the most pressing matters and give them priority. This helps you to separate the main issues from the non-essentials and focus on what matters. From ae41eb2042a8b44025300bd07f5a7eb8cdea64b3 Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Mon, 3 Nov 2025 21:53:24 +0100 Subject: [PATCH 10/12] external links -> GSoC.md --- CONTRIBUTING.md | 2 ++ README.md | 1 + docs/index.md | 1 + 3 files changed, 4 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5ff852878a5..000211e5f40 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,7 @@ # Contributing +For candidates interested in participating in the Google Summer of Code (GSoC), checkout Mesa’s [GSoC guide](https://github.com/projectmesa/mesa/blob/main/docs/GSoC.md). + As an open source project, Mesa welcomes contributions of many forms, and from beginners to experts. If you are curious or just want to see what is happening, we post our development session agendas and development session notes on [Mesa discussions]. We also have a threaded discussion forum on [Matrix] diff --git a/README.md b/README.md index 8ad32a8c528..f85cccc7684 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ pip install -U -e git+https://github.com/YOUR_FORK/mesa@YOUR_BRANCH#egg=mesa For resources or help on using Mesa, check out the following: - [Getting Started](https://mesa.readthedocs.io/stable/getting_started.html) (A collection of tutorials that will walk you through a basic model.) +- [GSoC at Mesa — Candidates Guide](https://github.com/projectmesa/mesa/blob/main/docs/GSoC.md) (For candidates interested in participating in the Google Summer of Code at Mesa) - [Mesa Examples](https://mesa.readthedocs.io/stable/examples.html) (A repository of seminal ABMs that are part of the Mesa[rec] install and use the most current Mesa release) - [Docs](http://mesa.readthedocs.org/) (Mesa's documentation, API and useful snippets) - [Development version docs](https://mesa.readthedocs.io/latest/) (the latest version docs if you're using a pre-release Mesa version) diff --git a/docs/index.md b/docs/index.md index 086c6cd8565..a6bb486e2f0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -112,6 +112,7 @@ API Documentation - {ref}`search` [contributors guide]: https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.md +[GSoC at Mesa — Candidates Guide]: GSoC.md [github repository]: https://github.com/projectmesa/mesa/ [github discussions]: https://github.com/projectmesa/mesa/discussions [issue tracker]: https://github.com/projectmesa/mesa/issues From 13623d82d509acc738d663410a5ed3103f81abc9 Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Mon, 3 Nov 2025 22:48:32 +0100 Subject: [PATCH 11/12] Update CONTRIBUTING.md Co-authored-by: Ewout ter Hoeven <15776622+EwoutH@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 000211e5f40..d8a607734ce 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -For candidates interested in participating in the Google Summer of Code (GSoC), checkout Mesa’s [GSoC guide](https://github.com/projectmesa/mesa/blob/main/docs/GSoC.md). +_For candidates interested in participating in the Google Summer of Code (GSoC), checkout Mesa’s [GSoC guide](https://github.com/projectmesa/mesa/blob/main/docs/GSoC.md)._ As an open source project, Mesa welcomes contributions of many forms, and from beginners to experts. If you are curious or just want to see what is happening, we post our development session agendas From 0a9980eadcfd9a56029300afa53e4966f29e3edf Mon Sep 17 00:00:00 2001 From: Colin FRISCH Date: Mon, 3 Nov 2025 22:52:13 +0100 Subject: [PATCH 12/12] update --- docs/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.md b/docs/index.md index a6bb486e2f0..80ef76421e1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -83,6 +83,7 @@ Mesa is an open source project and welcomes contributions: - [GitHub Repository] - Access the source code - [Issue Tracker] - Report bugs or suggest features - [Contributors Guide] - Learn how to contribute +- [GSoC at Mesa — Candidates Guide] - For candidates interested in participating in the Google Summer of Code at Mesa ### Citing Mesa