Portfolio project for a Scientific Visualization (ParaView) Specialist role: AI-assisted scientific visualization asset refinement for multiphysics simulation data.
This repository generates deterministic synthetic 3D simulation data for a thermal plume and airflow around an AI research cooling module, exports ParaView-compatible VTK assets, builds automated ParaView scripts, renders polished preview images, and runs asset QA checks suitable for an AI research visualization workflow.
- Primary VTK dataset:
data/vtk/cooling_module_primary.vtk - Preferred XML ImageData dataset:
data/vtk/cooling_module_primary.vti - Time sequence:
data/vtk/cooling_module_timeseries.pvd - ParaView automation:
paraview/render_paraview_scene.py - QA report:
outputs/reports/sciviz_asset_qa_report.md - Executive summary:
outputs/reports/executive_summary.md - 60-second approval guide:
outputs/reports/fellowship_reviewer_guide.md
Animation: outputs/animations/plume_evolution.gif
This project demonstrates the practical work expected from a scientific visualization specialist:
- VTK-compatible scientific data generation and export.
- Structured volume fields with scalar and vector point arrays.
- Obstacle/module polydata and streamline seed polydata.
- Derived fields: velocity magnitude, vorticity, divergence, temperature gradient magnitude, segmentation masks.
- Time-series export through
.pvd. - ParaView automation for slices, contours, thresholds, streamlines, color maps, camera, and screenshots.
- Fallback batch rendering when
pvpythonis not installed. - Visualization asset QA for AI research data pipelines.
- Reproducible command-line execution and tests.
- Python 3.12 tested locally
- NumPy
- Matplotlib
- Pillow
- Pytest
- ParaView /
pvpythonoptional - VTK and PyVista optional, not required
The synthetic scenario is a thermal plume and airflow around an AI research cooling module. The 3D domain contains:
temperature: Kelvin scalar field.pressure: Pascal scalar field.density: derived scalar field.velocity: 3-component vector field.velocity_magnitude: derived scalar field.vorticityandvorticity_magnitude: derived vector/scalar fields.divergence: vector field quality diagnostic.temperature_gradient_magnitude: edge/transition diagnostic.module_mask: obstacle segmentation.hotspot_mask: high-temperature threshold segmentation.
All data are generated locally and are license-safe.
python scripts/00_generate_simulation_data.py
python scripts/01_preprocess_fields.py
python scripts/02_export_vtk_assets.py
python scripts/03_render_previews.py
python scripts/04_asset_qa.py
python scripts/05_build_paraview_state.py
python scripts/06_build_submission_manifest.py
python scripts/run_pipeline.pyOn this Windows workspace, use the repository virtual environment if the global python alias is disabled:
.\.venv\Scripts\python.exe scripts\run_pipeline.py
.\.venv\Scripts\python.exe scripts\validate_outputs.py
.\.venv\Scripts\python.exe -m pytest- Open ParaView.
- Load
data/vtk/cooling_module_primary.vtifor the clean XML ImageData reference view, ordata/vtk/cooling_module_timeseries.pvdfor temporal playback. - Load
data/vtk/cooling_module_obstacle.vtpordata/vtk/cooling_module_obstacle.vtk. - Optionally load
data/vtk/streamline_seed_points.vtk. - Apply a
Sliceontemperature, aContourat 342 K and 355 K, aThresholdonhotspot_mask, andStream Tracer With Custom Sourceusingvelocity. - Use
paraview/color_presets.jsonandparaview/camera_presets.jsonfor consistent presentation.
If pvpython is available, run:
pvpython paraview/render_paraview_scene.pyThat script exports outputs/renders/paraview_scene_overview.png and a .pvsm state file. If ParaView is not installed, paraview/STATE_EQUIVALENT.md documents the script-based equivalent.
The asset QA module validates:
- Missing dataset files.
- Malformed or unreadable VTK headers.
- Missing scalar/vector arrays.
- NaN and infinite values.
- Temperature range sanity.
- Dimension consistency.
- Missing time steps.
- Metadata schema.
- Naming conventions.
- Render existence, image size, and nonblank output.
Outputs:
outputs/reports/sciviz_asset_qa_report.mdoutputs/tables/asset_qa_findings.csvdata/processed/normalized_metadata.json
data/
raw/ deterministic NumPy timestep bundles
processed/ metadata, summaries, reference fields
vtk/ ParaView-compatible VTK and PVD assets
paraview/ automation scripts, color presets, camera presets
scripts/ numbered pipeline and validation scripts
outputs/
renders/ PNG preview renders
animations/ plume GIF
reports/ Markdown reports
tables/ CSV QA and field summaries
docs/ methodology and portfolio notes
tests/ pytest validation tests
outputs/reports/executive_summary.mdoutputs/reports/fellowship_reviewer_guide.mdoutputs/reports/methodology.mdoutputs/reports/sciviz_asset_qa_report.mdoutputs/reports/reproducibility_report.md
This workspace may contain unrelated local projects. For a fellowship submission, create a clean GitHub repository named ParaView-Scientific-Visualization-AI-Asset-Lab and include the project files listed in outputs/tables/submission_manifest.csv. The checklist is written to outputs/reports/github_submission_checklist.md.
To materialize a clean local folder for publication:
python scripts/07_prepare_clean_github_repo.pyThat creates dist/ParaView-Scientific-Visualization-AI-Asset-Lab/.
The simulation is synthetic and analytic, not a CFD solver result. The Python renders are faithful preview assets, but ParaView remains the intended environment for production-grade volume rendering, transfer-function tuning, clipping, and interactive streamline review.
- Add native XML
.vtiwriters with appended binary payloads. - Add ParaView Catalyst-style in situ examples.
- Add GPU volume rendering presets for production ParaView.
- Add a small active-learning loop for image quality annotations.
For hiring reviewers, this project shows end-to-end ownership of a scientific visualization workflow: deterministic data generation, VTK pipeline design, scalar/vector derived fields, ParaView automation, camera and color design, batch rendering, reproducibility, and asset QA for AI research visualization refinement.





