Metadata-Version: 2.4
Name: dno
Version: 0.1.2
Summary: Dynamic Neural Organism (DNO): A self-evolving, growing, and pruning neural network framework.
Home-page: https://github.com/yourusername/dno
Author: DeeDe Architect
Author-email: architect@deede.ai
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: torch>=1.9.0
Requires-Dist: numpy
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# DNO: Dynamic Neural Organism 🧬

**DNO** (formerly DeeDe) is a PyTorch-based framework for creating biological neural networks that **grow**, **think**, and **evolve** at runtime.

Unlike static deep learning models, a DNO is an organism that starts small and evolves its architecture based on the problem complexity.

## Key Features

- 🧠 **Dynamic Growth**: Starts with a seed and adds layers via mitosis when "confused" (High Entropy).
- 🗡️ **Survival of the Fittest**: Prunes inefficient neurons and layers using Information Gain (KL-Divergence).
- 🧬 **Fluid Serialization**: Save the entire organism (Weights + Topology + History) into a single `.dno` file.
- 📺 **Live Dashboard**: Visualize the organism's anatomy and health in the terminal.

## Installation

```bash
pip install dno
```

## Quick Start

```python
import torch
import torch.nn as nn
from dno.core.organism import OrganismManager, BaseEvolvableModule
from dno.core.network import DynamicNetwork
from dno.config import DnoConfig
from dno.utils.dashboard import print_organism_status

# 1. Create the Organism
manager = OrganismManager()
config = DnoConfig(entropy_threshold=0.6, growth_alpha=0.5)
network = DynamicNetwork(manager, config)

# 2. Add a Seed Layer
seed = BaseEvolvableModule(nn.Linear(10, 10))
seed.dynamic_id = "seed_layer"
network.add_layer(seed)

# 3. Live Life (Forward Pass)
input_data = torch.randn(1, 10)
output = network(input_data)

# 4. Check Status
print_organism_status(manager)
```

## License

MIT
