Skip to content

mraml/NYX99

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NYX99

📖 Overview

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.

Screenshot 2026-01-18 at 9 08 08 PM

✨ Features

  • 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

🏗️ Architecture

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

🚀 Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn
  • Database (MongoDB/PostgreSQL/MySQL - specify your choice)

Installation

  1. Clone the repository:
git clone https://github.com/mraml/NYX99.git
cd NYX99
  1. Install dependencies:
npm install
  1. Configure environment variables:
cp config.env .env
# Edit .env with your configuration
  1. Start the simulation:
npm start

⚙️ Configuration

Edit 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=info

🎮 Usage

Starting a Simulation

const NYX99 = require('./index');

const simulation = new NYX99({
  populationSize: 1000,
  simulationSpeed: 1.0,
  enableUI: true
});

simulation.start();

📊 Simulation Components

Agents (Humans)

Each simulated human has:

  • Demographic attributes (age, gender, etc.)
  • Personality traits
  • Social connections
  • Health status
  • Economic status
  • Decision-making capabilities

Environment

The simulation environment includes:

  • Resource distribution
  • Social structures
  • Economic systems
  • Environmental conditions

Events

Dynamic events that affect the simulation:

  • Natural events
  • Social movements
  • Economic changes
  • Health crises

🔧 Development

Project Structure

  • 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

Running Tests

npm test

Building for Production

npm run build

📚 Documentation

For detailed documentation, see the Docs directory:

Roadmap

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.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

👥 Authors

  • mraml - Initial work - GitHub

🙏 Acknowledgments

  • 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.

About

A humanity simulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published