cadog - CAD Web Viewer
Description
NAME
====
cadog - CAD Web Viewer
COMPILATION
===========
This project uses org-mode (https://orgmode.org/) literate programming.The source code and documentation are written together in 'cadog.org', which is tangled to generate the actual source code files.
DESCRIPTION
===========
cadog is a web-based tool for creating and viewing implosion animations of CAD models. It supports OBJ, GLB, and STEP formats with a focus on generating implosion animations manually or using schema methods with the help of a Language Model (LLM).
NOTE
=====
The source file is a literate Org-mode document. Use Emacs to tangle and generate the file tree:
FEATURES
========
- Import 3D files (OBJ, GLB, STEP) into a Three.js scene.
- Switch between views, select, and group model parts.
- Create implosion animation sequences.
- Fly-In Parts feature with linear or ease-in-out interpolation.
- Choose between group or sequential fly-in for each part.
- Specify custom or random direction vectors for animations.
- Apply transformations to selected View Groups.
- Use LLM to generate implosion animation schemas.
- Export and import animation sequences and transformation data as JSON.
REQUIREMENTS
============
Install required software from requirements.txt.
PROJECT STRUCTURE
=================
Key files:
1. flask_app.py - Main backend Flask application.
2. index.html - Frontend HTML interface.
3. style.css - Frontend styling.
4. SceneManager.js - Three.js scene management.
5. FileLoader.js - Load 3D model files.
6. AnimationManager.js - Manage animations.
7. animationEffects.js - Animation effects implementation.
8. app.js - Main frontend JavaScript logic.
9. llm.js - LLM schema methods.
10. utils.js - Utility functions.
ANIMATION STEPS
===============
1. Upload model (OBJ/GLB/STEP)
2. Select & group parts
3. Choose animation (Implode/Fly-In)
4. Set mode, easing, direction
5. (Opt) Generate schema via LLM
6. Preview → Adjust → Export JSON
Run with Docker
===============
1. Make sure to tangle the repo and include
- flask_app.py
- requirements.txt
- index.html, style.css, and JS files
2. Create a file named: Dockerfile
-----------------------------------------------------------
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
WORKDIR /app
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt
COPY . /app
EXPOSE 8000
CMD ["gunicorn", "-b", "0.0.0.0:8000", "flask_app:app", "--workers", "2", "--threads", "4", "--timeout", "120"]
-----------------------------------------------------------
3. Build the Docker image:
docker build -t cadog:latest .
4. Run the container:
docker run --rm -p 8080:8000 -v "$(pwd)/data:/app/data" --name cadog cadog:latest
5. Open your browser:
http://localhost:8080
Notes:
- The container runs Gunicorn serving Flask on port 8000.
- Port 8080 on the host maps to 8000 inside the container.
- Mounting ./data is optional for your imported CAD files.
- Stop the container with CTRL+C.
VIDEO DEMO
==================
https://youtu.be/6Ch4sPOk_kM
ACKNOWLEDGEMENT
==================
The project "Fab City – Decentralized Digital Production for Urban Value Creation" is funded by dtec.bw and supported by the European Union – NextGenerationEU.
Files
cadog-v1.0.0.zip
Files
(50.1 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:8f8c0e5de35111593da61a2f9c720e16
|
50.1 kB | Preview Download |
Additional details
Software
- Repository URL
- https://github.com/jcmariscal/cadog
- Development Status
- Wip