-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Add guide for GSoC contributors #2873
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+57
−0
Merged
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
438ec05
gsoc-guide
colinfrisch e59ed86
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 3afaf1f
Update docs/GSoC.md
colinfrisch c6f033c
Update docs/GSoC.md
colinfrisch 6f3a63e
Update docs/GSoC.md
colinfrisch 495a93f
Update docs/GSoC.md
colinfrisch 886d009
Update docs/GSoC.md
colinfrisch ab285f9
Update docs/GSoC.md
colinfrisch 1ff0579
feedback-based updates
colinfrisch ae41eb2
external links -> GSoC.md
colinfrisch bc7cf22
Merge branch 'main' into main
colinfrisch 13623d8
Update CONTRIBUTING.md
colinfrisch 0a9980e
update
colinfrisch File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| # GSoC at Mesa — Candidates Guide | ||
|
|
||
| ## What is Mesa? | ||
| 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. | ||
|
|
||
| ### 2025 projects | ||
|
|
||
| | 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: | ||
|
|
||
| - 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. 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 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. | ||
|
|
||
| --- | ||
|
|
||
| ## 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 to separate the main issues from the non-essentials and focus on what matters. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.