Advanced Active Learning & Adaptive Sampling for Engineering Simulations
A comprehensive cloud-based SaaS platform that reduces simulation costs by 70-80% through intelligent data collection and surrogate modeling. Features cutting-edge active learning algorithms, physics-informed sampling, and multi-fidelity modeling for engineering applications.
- π§ Intelligent Active Learning: Adaptive sampling strategies with physics-informed constraints
- β‘ Multi-Fidelity Modeling: Combines low and high-fidelity simulations efficiently
- π Real-Time Adaptation: Dynamic strategy switching based on model performance
- π‘οΈ Enterprise Security: JWT authentication with multi-tenant isolation
- π Advanced Analytics: Uncertainty quantification and convergence monitoring
- π Scalable Architecture: Async processing with Docker containerization
- π― Smart Acquisition: Expected Improvement, UCB, Knowledge Gradient functions
- βοΈ Physics Integration: Domain knowledge and conservation laws
- π Budget Optimization: Cost-aware sampling with resource tracking
- FastAPI: High-performance Python web framework
- PostgreSQL: Primary database for metadata
- Redis: Caching and session management
- MinIO: S3-compatible object storage for datasets
- SQLAlchemy: Database ORM with Alembic migrations
- Celery: Background task processing
- React 18: Modern JavaScript framework
- TypeScript: Type-safe development
- Material-UI: Professional UI components
- Plotly.js: Interactive data visualizations
- Axios: HTTP client for API communication
- Docker: Containerization
- Docker Compose: Local development orchestration
- Nginx: Reverse proxy and static file serving
- Docker and Docker Compose
- Python 3.11+ (for local development)
- Node.js 18+ (for frontend development)
-
Clone the repository
git clone <repository-url> cd SurrogateModel
-
Start all services
docker-compose up -d
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- MinIO Console: http://localhost:9001
cd backend
# Install dependencies
pip install -r requirements.txt
# Copy environment file
cp .env.example .env
# Run database migrations
alembic upgrade head
# Start the development server
uvicorn app.main:app --reload
cd frontend
# Install dependencies
npm install
# Start the development server
npm start
- Navigate to the Datasets page
- Click "Upload Dataset"
- Provide CSV/Excel file with simulation results
- Specify input and output columns
- Go to Models page
- Click "Create Model"
- Select your dataset and algorithm
- Wait for training to complete
- Visit Predictions page
- Select your trained model
- Enter input parameters
- Get instant predictions with uncertainty quantification
import requests
# Login
response = requests.post("http://localhost:8000/api/v1/auth/login", data={
"username": "your_email",
"password": "your_password"
})
token = response.json()["access_token"]
# Make prediction
headers = {"Authorization": f"Bearer {token}"}
prediction_data = {"length": 10, "width": 5, "thickness": 2}
response = requests.post(
"http://localhost:8000/api/v1/predictions/1/predict",
json=prediction_data,
headers=headers
)
result = response.json()
cd backend
# Run tests
make test
# Run tests with coverage
make test-cov
# Lint code
make lint
# Format code
make format
# Create database migration
make migrate-create name="add_new_table"
# Apply migrations
make migrate
cd frontend
# Run tests
npm test
# Build for production
npm run build
# Type checking
npm run type-check
SurrogateModel/
βββ backend/ # FastAPI backend
β βββ app/
β β βββ api/ # API endpoints
β β βββ core/ # Core functionality
β β βββ db/ # Database configuration
β β βββ models/ # SQLAlchemy models
β β βββ services/ # Business logic
β βββ tests/ # Backend tests
β βββ alembic/ # Database migrations
βββ frontend/ # React frontend
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ services/ # API services
β β βββ types/ # TypeScript types
β βββ public/ # Static assets
βββ infrastructure/ # Deployment configs
βββ docs/ # Documentation
- JWT-based authentication
- Role-based access control (RBAC)
- Tenant isolation
- Input validation and sanitization
- SQL injection prevention
- CORS configuration
- Secure password hashing
- Health check endpoints
- Structured logging
- Performance metrics
- Error tracking
- API response time monitoring
- Configure environment variables
- Set up external databases (PostgreSQL, Redis)
- Configure object storage (S3/MinIO)
- Deploy with Kubernetes or Docker Swarm
- Set up monitoring and logging
- Configure SSL/TLS certificates
See backend/.env.example
for all available configuration options.
cd backend
pytest tests/ -v --cov=app
cd frontend
npm test
- Sub-100ms prediction response times
- Horizontal scaling support
- Efficient database queries
- Caching for frequently accessed data
- Optimized ML model serving
We welcome contributions from the engineering and ML communities! See CONTRIBUTING.md for detailed guidelines.
Quick Start:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and add tests
- Run tests:
pytest tests/ && python test_api.py
- Submit a pull request
Priority Areas:
- π§ Advanced acquisition functions and sampling strategies
- β‘ Performance optimizations and parallelization
- π§ Integration with commercial simulation tools (ANSYS, COMSOL, OpenFOAM)
- π Advanced visualization and analysis tools
- π Industry-specific examples and benchmarks
Research Contributions: We encourage academic contributions! Please reference original papers and include proper validation against benchmarks.
This project is licensed under a Custom License for personal and research use:
- β Free for personal use and research
- β Open source contributions welcome
- β Academic and educational use permitted
- π’ Commercial use requires separate license
For commercial licensing, enterprise support, or custom development: π§ Contact: durai@infinidatum.net
See the LICENSE file for complete terms and conditions.
- π Documentation: See
/docs
folder and http://localhost:8000/docs - π Issues: GitHub Issues for bugs and feature requests
- πΌ Commercial Licensing: durai@infinidatum.net
- π€ Enterprise Support: durai@infinidatum.net
- π§ Custom Development: durai@infinidatum.net
For any questions about licensing, commercial use, or custom implementations, please reach out to durai@infinidatum.net.