# MiniHuman: Simulating Virtual Human Behaviors and Responses to Environmental Stimuli

[![PyPI version](https://badge.fury.io/py/MiniHuman-Toolkit.svg)](https://badge.fury.io/py/MiniHuman-Toolkit)
[![Downloads](https://pepy.tech/badge/MiniHuman-Toolkit)](https://pepy.tech/project/MiniHuman-Toolkit)
[![GitHub Issues](https://img.shields.io/github/issues/songlinxu/MiniHuman-Toolkit.svg)](https://github.com/songlinxu/MiniHuman-Toolkit/issues)



## Introduction
MiniHuman aims to leverage SOTA AI models (LLM agents, RL agents, etc), sensing, and intervention techniques to simulate both **human mind** (mental behaviors) and **physical behaviors**, to support AI and HCI applications in **education**, **health**, **recommendation**, **user experience**, and **human augmentation**.

## Applications

### Education
- Knowledge Tracing
- Student Behavior Regulation

### Health
- Attention Regulation
- Emotion Regulation


### Human Augmentation
- Cognitive Training

### Human Computer Interaction
- User experience simulation


### Recommendation
- User Web Behavior Simulation

### Social Science
- Social Interaction
- Social Network

## Technical Details

### Human Behaviors: Mind + Physical Behaviors
We support a wide range of human behaviors to empower diverse application scenarios. 
- Physiological behaviors
  - Gaze
- Motor behaviors
- Cognitive states
  - Attention
  - Workload
  - ...
- Knowledge states
- Emotion



### Environmental Stimuli
We support a wide range of environmental stimuli to empower diverse application scenarios. 
- Visual stimuli
  - Time Pressure
  - ...
- Auditory stimuli
  - Instructor Voice
  - ...
- Textual stimuli
  - Course Materials
  - ...


### Agent Architecture
- LLM-based Agents
  - Persona Initialization
  - Task Definition
  - Behavior Definition
  - Environment Description
  - Foundation Model
- RL-based Agents
  - Action Space
  - Observation Space
  - Optimization Policy

## Citation

If you use this repository, please cite it as follows:

Songlin Xu, Xinyu Zhang. (2024). MiniHuman (Version 1.0). GitHub. https://github.com/songlinxu/MiniHuman

Alternatively, use the following BibTeX entry:

```bibtex
@misc{songlin2024minihuman,
  author = {Songlin Xu, Xinyu Zhang},
  title = {minihuman},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/songlinxu/MiniHuman}},
  version = {1.0}
}


