Metadata-Version: 2.4
Name: simforge
Version: 0.4.0
Summary: Diverse virtual environments through procedural generation
Project-URL: Repository, https://github.com/AndrejOrsula/simforge
Project-URL: Documentation, https://AndrejOrsula.github.io/simforge
Author-email: Andrej Orsula <orsula.andrej@gmail.com>
Maintainer-email: Andrej Orsula <orsula.andrej@gmail.com>
License: MIT OR Apache-2.0
License-File: LICENSE-APACHE
License-File: LICENSE-MIT
Keywords: procedural,simulation
Classifier: License :: OSI Approved :: Apache Software License
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Topic :: Games/Entertainment :: Simulation
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
Requires-Python: >=3.11
Requires-Dist: platformdirs~=4.0
Requires-Dist: pydantic~=2.0
Requires-Dist: pytest-cov>=7.0.0
Provides-Extra: all
Requires-Dist: argcomplete~=3.0; extra == 'all'
Requires-Dist: bpy~=4.0; extra == 'all'
Requires-Dist: fake-bpy-module; extra == 'all'
Requires-Dist: logfire~=4.0; extra == 'all'
Requires-Dist: ptpython~=3.0; extra == 'all'
Requires-Dist: pytest-order~=1.0; extra == 'all'
Requires-Dist: pytest-sugar~=1.0; extra == 'all'
Requires-Dist: pytest~=8.0; extra == 'all'
Requires-Dist: rich~=14.0; extra == 'all'
Requires-Dist: simforge-foundry; extra == 'all'
Provides-Extra: assets
Requires-Dist: simforge-foundry; extra == 'assets'
Provides-Extra: bpy
Requires-Dist: bpy~=4.0; extra == 'bpy'
Provides-Extra: bpydev
Requires-Dist: bpy~=4.0; extra == 'bpydev'
Requires-Dist: fake-bpy-module; extra == 'bpydev'
Provides-Extra: cli
Requires-Dist: argcomplete~=3.0; extra == 'cli'
Requires-Dist: ptpython~=3.0; extra == 'cli'
Requires-Dist: rich~=14.0; extra == 'cli'
Provides-Extra: dev
Requires-Dist: logfire~=4.0; extra == 'dev'
Requires-Dist: pytest-order~=1.0; extra == 'dev'
Requires-Dist: pytest-sugar~=1.0; extra == 'dev'
Requires-Dist: pytest~=8.0; extra == 'dev'
Requires-Dist: rich~=14.0; extra == 'dev'
Provides-Extra: foundry
Requires-Dist: simforge-foundry; extra == 'foundry'
Provides-Extra: repl
Requires-Dist: ptpython~=3.0; extra == 'repl'
Provides-Extra: rich
Requires-Dist: rich~=14.0; extra == 'rich'
Provides-Extra: test
Requires-Dist: pytest-order~=1.0; extra == 'test'
Requires-Dist: pytest-sugar~=1.0; extra == 'test'
Requires-Dist: pytest~=8.0; extra == 'test'
Provides-Extra: tracing
Requires-Dist: logfire~=4.0; extra == 'tracing'
Requires-Dist: rich~=14.0; extra == 'tracing'
Description-Content-Type: text/markdown

<h1 align="center">SimForge</h1>

[![PyPi](https://img.shields.io/pypi/v/simforge.svg)](https://pypi.python.org/pypi/simforge)
[![Docs](https://img.shields.io/badge/docs-online-blue?logo=markdown)](https://AndrejOrsula.github.io/simforge)
[![Python](https://github.com/AndrejOrsula/simforge/actions/workflows/python.yml/badge.svg)](https://github.com/AndrejOrsula/simforge/actions/workflows/python.yml)
[![Docker](https://github.com/AndrejOrsula/simforge/actions/workflows/docker.yml/badge.svg)](https://github.com/AndrejOrsula/simforge/actions/workflows/docker.yml)
[![Docs](https://github.com/AndrejOrsula/simforge/actions/workflows/docs.yml/badge.svg)](https://github.com/AndrejOrsula/simforge/actions/workflows/docs.yml)
[![Codecov](https://codecov.io/gh/AndrejOrsula/simforge/graph/badge.svg)](https://codecov.io/gh/AndrejOrsula/simforge)

**SimForge** is a framework for creating diverse virtual environments through procedural generation.

## Overview

The framework implements a modular approach with three primary concepts: **Assets**, **Generators**, and **Integrations**.

### Assets

Assets are the registered building blocks that range from simple images and meshes to complex articulated models. Their definitions reside in external repositories that can be shared and reused across projects. Example: [SimForge Foundry](https://github.com/AndrejOrsula/simforge_foundry)

### Generators

Generators are responsible for automating the creation of **Assets** from their definitions in a deterministic manner. They interface with external tools and libraries to produce the desired output. Example: [Blender](https://AndrejOrsula.github.io/simforge/generators/blender.html)

### Integrations

Integrations seamlessly bridge the gap between the **Generators** and external frameworks such as game engines or physics simulators. These modules leverage domain-specific APIs to import and configure the generated **Assets**. Example: [Isaac Lab](https://AndrejOrsula.github.io/simforge/integrations/isaaclab.html)

## Documentation

The full documentation is available in its raw form inside the [docs](docs) directory. The compiled version is hosted [online](https://AndrejOrsula.github.io/simforge) in a more accessible format.

<a href="https://AndrejOrsula.github.io/simforge"> <img alt="HTML" src="https://github.com/AndrejOrsula/awesome-space-robotics/assets/22929099/3c8accf7-5acb-4bcd-9553-bf49cc622abe" width="96" height="96"></a>

## License

This project is dual-licensed under either the [MIT](LICENSE-MIT) or [Apache 2.0](LICENSE-APACHE) licenses.
