This repository contains a minimal implementation of the architecture described in AGENTS.md
.
It provides a Flask web application with a simple flow that demonstrates the basic structure
of a simulation service.
- Create a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate pip install -r requirements.txt # waitress is included in requirements for serving the app
- Run the application:
python run.py
- Navigate to
http://localhost:5000
to see the available flows.
User accounts are stored in users.json
and loaded on startup, so any users
added through the admin interface will persist across restarts.
Each user can also edit personal settings such as AEDT/EDB versions, language,
and color scheme from the Settings page after logging in. These preferences
are saved in users.json
for future sessions.
app/
- Application packageroutes.py
- Basic routes for deck and flow stepsflows/
- Pluggable flow modulestemplates/
- Jinja2 templates
jobs/
- Folder where job data is storedusers.json
- Stored user accountsrun.py
- Application entry point
This is a simplified example intended for demonstration purposes.
The Flow_SIwave_SYZ
example now accepts a single design file for the first
step. Upload either a .brd
file or a zipped .aedb
archive. The uploaded file
is processed and saved as design.aedb
in the job's output directory.
All subsequent steps reference output/design.aedb
, ensuring a consistent path
regardless of the original input type. When the design is uploaded and you
click Apply in Step 1, you can optionally generate PCB layout images for
the next step. If the Show PCB Layout in Step2 checkbox is selected, the
application plots all signal layer images and saves them as PNG files in the
job's output directory. Step 2 displays these images in a carousel. Leaving
the box unchecked skips image generation to speed up Step 1.