Welcome to our 3D model generation project, conducted as a coursework of the Data-Driven Engineering lecture in WS 2024/25 in the University of Paderborn. We leverage Retrieval-Augmented Generation (RAG) and Meshy AI to try to generate high-quality 3D models from textual descriptions.
Check out the fastest way to test our app via the live demo, which we deployed with Streamlit.
All in all the live demo should be robust with some restrictions: Please be aware that the meshy generation does not work if multiple users use it simultaneously. The life demo might not be perfect and might contain bugs, e.g. clicking multiple times on the send button might bring the meshy generation to failure.
If you'd prefer to run the project locally, follow these steps:
-
Clone the repository: (or use the zip file)
git clone https://git.uni-paderborn.de/deilers/ddeai.git cd ddeai
-
Pull Git LFS files: Ensure Git LFS is installed, then pull the large files tracked with LFS.
git lfs install git lfs pull
-
Create a virtual environment:
python -m venv venv venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Create the
.env
file
In the project's root directory, create a.env
file with the required environment variables:API_KEY = LLM_URL = MESHY_API_KEY = MESHY_URL =
The .env file including all the api keys and links will be included in the .zip of the submission.
-
Run the Streamlit UI:
streamlit run src/chatbot_ui.py
If the new UI contains bugs or you prefer a command-line approach, you can still generate 3D models using our classic terminal-based script:
- Run the script:
python src/main.py
- Enter your Request: The script asks you to enter a request a CAD model. For instance use
"Give me a CAD model of a sportscar"
- Model generation: The script uses RAG of MeshyAPI to generate the model. The model is saved in the 'models' folder. The script will return you the exact locate you 3D model is saved to.
- The new UI is under active development and may contain minor bugs.
- If you encounter issues, feel free to fall back to the terminal-based script.