Skip to content

Commit 09b051f

Browse files
masonwyatt23claude
andcommitted
feat: rich evolution demo, neuron tooltips, professional README
Evolution Mode (fully functional in demo): - Client-side evolution simulation with realistic fitness curves (83 → 92 over 100 generations with noise and breakthroughs) - God Agent mock interventions at gen 15, 40, 75 - Real-time streaming at 500ms/generation - Population stats: species, synapse count, topology changes - Pause/resume works correctly 3D Neuron Tooltips: - Hover over neuron points → tooltip with name, type, NT, firing rate - Raycasting on Points geometry via R3F onPointerMove - HTML overlay positioned at mouse cursor - Gene expression data shown when available - HoveredNeuron state in simulationStore Professional README: - CI/License/Python/TypeScript/Tests badges - Architecture diagram + directory tree - Quick start (3 commands), Python API examples - Scientific validation table (5 behaviors, 75% accuracy) - Data sources, API reference, tech stack tables - 6 paper references with DOIs - CONTRIBUTING.md with setup + coding standards 183 tests passing, zero TypeScript errors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent bf8deab commit 09b051f

9 files changed

Lines changed: 827 additions & 223 deletions

File tree

CONTRIBUTING.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# Contributing to Neurevo
2+
3+
Thank you for your interest in contributing to Neurevo. This document outlines the process for contributing to the project.
4+
5+
## Getting Started
6+
7+
1. Fork the repository and clone your fork:
8+
9+
```bash
10+
git clone https://github.com/<your-username>/creatures.git
11+
cd creatures
12+
```
13+
14+
2. Set up the development environment:
15+
16+
```bash
17+
make setup
18+
```
19+
20+
3. Run the test suite to verify everything works:
21+
22+
```bash
23+
make test
24+
```
25+
26+
## Development Workflow
27+
28+
1. Create a feature branch from `main`:
29+
30+
```bash
31+
git checkout -b feature/your-feature-name
32+
```
33+
34+
2. Make your changes, following the coding standards below.
35+
36+
3. Run tests and ensure they pass:
37+
38+
```bash
39+
# Python tests
40+
make test
41+
42+
# Frontend tests (if you modified creatures-web)
43+
cd creatures-web && npm test
44+
```
45+
46+
4. Commit your changes with a clear message:
47+
48+
```bash
49+
git commit -m "Add description of what changed and why"
50+
```
51+
52+
5. Push to your fork and open a pull request against `main`.
53+
54+
## Coding Standards
55+
56+
### Python (creatures-core, creatures-api)
57+
58+
- Python 3.13+
59+
- Follow PEP 8 style guidelines
60+
- Use type hints for function signatures
61+
- Write docstrings for public functions and classes
62+
- Keep functions focused -- one function, one responsibility
63+
- Add unit tests for new functionality in `creatures-core/tests/`
64+
65+
### TypeScript (creatures-web)
66+
67+
- TypeScript strict mode
68+
- Use functional components with hooks
69+
- Keep components small and composable
70+
- Use Zustand for shared state, not prop drilling
71+
72+
### General
73+
74+
- No committed secrets, API keys, or credentials
75+
- Keep dependencies minimal -- justify new additions
76+
- Write clear commit messages that explain *why*, not just *what*
77+
78+
## Project Structure
79+
80+
| Directory | Language | Purpose |
81+
|-----------|----------|---------|
82+
| `creatures-core/` | Python | Core library: connectome, neural simulation, evolution, pharmacology |
83+
| `creatures-api/` | Python | FastAPI server with REST and WebSocket endpoints |
84+
| `creatures-web/` | TypeScript | React + Three.js frontend |
85+
| `scripts/` | Python | CLI tools for evolution, validation, and reporting |
86+
| `notebooks/` | Jupyter | Interactive demos and exploration |
87+
88+
## Where to Contribute
89+
90+
### High-Impact Areas
91+
92+
- **New organisms**: Add connectome loaders and body models for zebrafish, mouse, or other species
93+
- **Neuron models**: Implement Hodgkin-Huxley or multi-compartment models alongside the existing LIF engine
94+
- **Fitness functions**: Design new behavioral assays for evolution (foraging efficiency, learning tasks, social behavior)
95+
- **Performance**: Optimize Brian2 simulation speed, parallelize evolution runs, GPU acceleration
96+
- **Pharmacology**: Add new drug models with receptor-level specificity
97+
- **Visualization**: Improve 3D rendering, add connectome graph views, evolution dashboards
98+
99+
### Good First Issues
100+
101+
Look for issues labeled `good first issue` on GitHub. These are scoped tasks suitable for new contributors.
102+
103+
## Testing
104+
105+
All contributions should include tests where applicable.
106+
107+
```bash
108+
# Run Python tests with verbose output
109+
python -m pytest creatures-core/tests/ -v
110+
111+
# Run a specific test file
112+
python -m pytest creatures-core/tests/test_connectome.py -v
113+
114+
# Run with coverage
115+
python -m pytest creatures-core/tests/ --cov=creatures --cov-report=term-missing
116+
```
117+
118+
## Pull Request Guidelines
119+
120+
- Keep PRs focused on a single change
121+
- Include a clear description of what changed and why
122+
- Reference any related issues
123+
- Ensure CI passes before requesting review
124+
- Add tests for new functionality
125+
- Update documentation if the public API changes
126+
127+
## Reporting Bugs
128+
129+
Open a GitHub issue with:
130+
131+
1. A clear title describing the bug
132+
2. Steps to reproduce
133+
3. Expected behavior vs. actual behavior
134+
4. Your environment (OS, Python version, relevant package versions)
135+
136+
## Requesting Features
137+
138+
Open a GitHub issue with the `enhancement` label. Include:
139+
140+
1. The problem you are trying to solve
141+
2. Your proposed solution
142+
3. Any alternatives you considered
143+
144+
## Code of Conduct
145+
146+
Be respectful and constructive. We are building tools to advance neuroscience and reduce animal testing. Treat fellow contributors with the same care we bring to the science.
147+
148+
## License
149+
150+
By contributing, you agree that your contributions will be licensed under the MIT License.

0 commit comments

Comments
 (0)