NYX99 is an advanced command line simulation system designed to model and simulate human behavior, social interactions, and population dynamics. The project provides a comprehensive framework for creating, managing, and analyzing simulated human societies with configurable parameters and real-time monitoring. It's a project I'm vibe coding as a long term hobby, like my own digital model train set, or terrarium, and eventually maybe a nice place for us all to live once the machines take over.
- Agent-Based Simulation: Model individual humans with unique characteristics and behaviors
- Real-Time Monitoring: Track simulation metrics and population dynamics through an interactive UI
- Scalable Architecture: Worker-based design for handling large-scale simulations
- Data Persistence: Database integration for storing simulation states and historical data
- Configurable Environment: Flexible configuration system via environment variables
- Logging System: Comprehensive logging for debugging and analysis
NYX99/
├── engine/ # Core simulation engine
├── services/ # Business logic and service layer
├── workers/ # Background processing workers
├── ui/ # User interface components
├── data/ # Data storage and models
├── Docs/ # Documentation
├── index.js # Main application entry point
├── dbService.js # Database service layer
├── logger.js # Logging utilities
└── config.env # Configuration file
- Node.js (v14 or higher)
- npm or yarn
- Database (MongoDB/PostgreSQL/MySQL - specify your choice)
- Clone the repository:
git clone https://github.com/mraml/NYX99.git
cd NYX99- Install dependencies:
npm install- Configure environment variables:
cp config.env .env
# Edit .env with your configuration- Start the simulation:
npm startEdit the config.env file to customize simulation parameters:
# Database Configuration
DB_HOST=localhost
DB_PORT=5432
DB_NAME=nyx99
# Simulation Parameters
POPULATION_SIZE=1000
SIMULATION_SPEED=1.0
MAX_AGE=100
# Worker Configuration
WORKER_THREADS=4
# Logging
LOG_LEVEL=infoconst NYX99 = require('./index');
const simulation = new NYX99({
populationSize: 1000,
simulationSpeed: 1.0,
enableUI: true
});
simulation.start();Each simulated human has:
- Demographic attributes (age, gender, etc.)
- Personality traits
- Social connections
- Health status
- Economic status
- Decision-making capabilities
The simulation environment includes:
- Resource distribution
- Social structures
- Economic systems
- Environmental conditions
Dynamic events that affect the simulation:
- Natural events
- Social movements
- Economic changes
- Health crises
- engine/: Core simulation logic and algorithms
- services/: Service layer for business logic
- workers/: Background workers for parallel processing
- ui/: Frontend interface for visualization
- data/: Data models and database schemas
npm testnpm run buildFor detailed documentation, see the Docs directory:
- Architecture Guide (to do)
- API Reference (to do)
- Configuration Guide (to do)
- Development Guide (to do)
Planned improvements
- More sophisticated map.
- Interactive items and inventories at locations.
- Enhance actions/activities for agents according to location and inventory.
- Increase agent intelligence and balance scoring/needs.
- Integrate realistic dialog, thought system.
Contributions are welcome! Please feel free to submit a Pull Request. For major changes:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- mraml - Initial work - GitHub
- Inspired by the need to populate the world with simulated humans to lower your odds of being in base reality.
NYX99 - A nice place for us to live when the machines take over.