The Person is an open-source Python simulation of a person living
inside your computer. It features a central Person class that developers
can expand with new attributes, behaviors, and quirks.
src/person.py is the heart of the project. Inside the script is a Person
class where you can build in. You may add other classes if necessary, but
try to keep the main focus on Person.
Our goal is to simulate a human in Python as closely as possible (and create a super long script) while providing a learning opportunity for beginners and a fun activity for experienced devs, and spark imagination and creativity. We also aim to keep our community safe and engaging for everyone.
- Beginner-Friendly: Whether you’re adding a new hobby, an
eat()method, or fixing a typo, no contribution is too small. - Learn OOP by Doing: Understand classes, methods, and inheritance by literally building a human being out of code.
- Infinite Possibilities: This project is never complete. From tracking
"hunger levels" to implementing a complex
dream()system, the only limit is your imagination. - Be Part of The Town: The Town is a fun little community that anyone can join. Read the section below to find out more.
Read our Contribution Guidelines to get started.
You can find tasks under the Issues tab on GitHub. These are
issues labeled task and are contributions you can make with specific
instructions and more guidance.
If you are interested in completing a task:
- Leave a comment requesting assignment under the issue.
- Wait for a thumbs-up from a maintainer
- Give our Contribution Guidelines a read
- Start coding!
Each task issue is labeled with its approximate difficulty level; to ensure fair distribution of tasks amongst contributors, please try to complete tasks labeled with your level of coding experience only
In the root directory of this repo, you will see the_town.py. Add yourself
as an instance of Person!
Read CONTRIBUTING to get started. Any PR not following the guidelines under "The Town" will be closed.
- Only edit your own code, even if you see a mistake someone made. That's their job to fix it.
- Don't change, add, or remove other townsfolk's attributes or called methods.
- Don't kill your neighbors (Don't remove
Personinstances other than your own)
In this repository, maintainers are expected to minimize the use of AI and prioritize human interaction; other than in GitHub Actions workflows and assissance in code reviews, all comments, review messages, task issues, and documentation are written by human hands, ensuring any AI assisstance is thoroughly reviewed and understood.
We expect the same from contributors and discourage using AI as more than just a tool. (Read our Code of Conduct)
AI tools can be helpful during development, and contributors are allowed to use them as assistive tools. However, this project does not accept fully automated or mass-generated contributions.
Pull requests that appear to be:
- fully AI-generated,
- automatically submitted to many repositories,
- or lacking human oversight may be closed without merging.
If you used AI assistance, please disclose it briefly in your PR description.
Please read the Contribution Guidelines for more information.
To try using the project yourself on your computer, follow these steps.
On the GitHub page:
- Click the green "Code" button
- Select "Download ZIP"
- Unzip the ZIP file on your machine.
- Extract any of the files in
srcto implement in your own projects!
If you have a question or something to say, open a discussion here, or leave a comment in an existing discussion.
This project is licensed under the MIT License.
Please drop us a star to ensure this reaches as many devs as possible 🙏 (PLEASE 🙏🙏🙏)