EXONYX / scripts /fill_ppt.py
Aditya-Jadhav150
Deploy clean EXONYX Backend
8f0e1cb
Raw
History Blame Contribute Delete
5.92 kB
from pptx import Presentation
from pptx.util import Inches, Pt
import os
def fill_presentation():
input_pptx = r"D:\EXONYX\[Pub] ISRO BAH 2026 _ Idea Submission Template.pptx"
output_pptx = r"D:\EXONYX\ISRO_BAH_2026_Submission_EXONYX.pptx"
prs = Presentation(input_pptx)
# We will iterate through slides and replace the instructional text with our content.
# Slide 3 (Index 2): Opportunity
slide3 = prs.slides[2]
for shape in slide3.shapes:
if hasattr(shape, "text") and "Opportunity should be able" in shape.text:
shape.text = (
"How different is it from existing ideas?\n"
"Current pipelines rely on expensive cloud computing and massive supercomputer clusters. EXONYX V5 brings research-grade validation to consumer hardware using highly optimized algorithms.\n\n"
"How will it solve the problem?\n"
"By combining mathematical Transit Least Squares (TLS) with a custom 1D PyTorch AstroNet CNN, it autonomously isolates and validates transits in noisy Kepler/K2 data without manual intervention.\n\n"
"USP:\n"
"A fully containerized, autonomous, and local deep-learning exoplanet discovery pipeline optimized specifically for an RTX 3050 GPU, reducing cloud compute costs to $0."
)
# Slide 4 (Index 3): Features
slide4 = prs.slides[3]
for shape in slide4.shapes:
if hasattr(shape, "text") and "List of features offered" in shape.text:
shape.text = (
"Key Features of EXONYX V5:\n"
"1. Headless Batch Survey Engine: Autonomously crunches thousands of light curves in the background.\n"
"2. Live Telemetry Dashboard: Next.js UI to monitor metrics, cache sizing, and GPU usage.\n"
"3. Deep Learning Validation: Integrated PyTorch AstroNet model for False Positive rejection.\n"
"4. MCMC Characterization: Bayesian 'emcee' integration for precise radius/period uncertainty calculations.\n"
"5. Automated Reporting: Generates PDF scientific validation reports for every detected candidate."
)
# Slide 5 (Index 4): Process Flow
slide5 = prs.slides[4]
for shape in slide5.shapes:
if hasattr(shape, "text") and "Process flow diagram" in shape.text:
shape.text = (
"Process Flow (Textual Outline):\n\n"
"1. Data Ingestion: Download uncalibrated FITS data natively from NASA MAST.\n"
"2. Detrending: Wōtan filter removes stellar variability and systemic noise.\n"
"3. TLS Search: Transit Least Squares identifies periodic transit signals.\n"
"4. Validation: AstroNet1D CNN evaluates the phase-folded curve for False Positive risks.\n"
"5. Characterization: MCMC walkers sample the posterior distributions for precise parameters.\n"
"6. Logging: Candidate is saved to the local SQLite DB and broadcast to the UI."
)
# Slide 6 (Index 5): Wireframes
slide6 = prs.slides[5]
for shape in slide6.shapes:
if hasattr(shape, "text") and "Wireframes/Mock diagrams" in shape.text:
shape.text = (
"Survey Dashboard UI Components:\n"
"- Unified Metrics Panel: Displays total candidates, survey progress, and PLI scores.\n"
"- Live Telemetry: Tracks backend cache sizing and SQLite connection status.\n"
"- Dark Mode Aesthetics: Premium visual design optimized for data-heavy astronomical workloads.\n"
"(Note: Actual screenshots can be embedded natively using the 'Insert Image' tool in PowerPoint)."
)
# Slide 7 (Index 6): Architecture diagram
slide7 = prs.slides[6]
for shape in slide7.shapes:
if hasattr(shape, "text") and "Architecture diagram" in shape.text:
shape.text = (
"System Architecture:\n\n"
"[ Frontend (Next.js / React) ]\n"
" |\n"
" v\n"
"[ API Gateway (FastAPI) ]\n"
" |\n"
" v\n"
"[ Core Engine ] -> Wotan Detrender -> TLS -> AstroNet PyTorch CNN -> emcee MCMC\n"
" |\n"
" v\n"
"[ Data Layer (SQLite / FITS Cache) ]"
)
# Slide 8 (Index 7): Technologies
slide8 = prs.slides[7]
for shape in slide8.shapes:
if hasattr(shape, "text") and "Technologies to be used" in shape.text:
shape.text = (
"Technology Stack:\n"
"- Backend: Python 3.10, FastAPI, Uvicorn.\n"
"- Astronomy Libraries: Lightkurve, Transit Least Squares, Wōtan, emcee.\n"
"- Deep Learning: PyTorch (CUDA 11.8 enabled).\n"
"- Frontend: Next.js, React, Tailwind CSS.\n"
"- Infrastructure: Docker, Docker Compose, SQLite."
)
# Slide 9 (Index 8): Estimated Cost
slide9 = prs.slides[8]
for shape in slide9.shapes:
if hasattr(shape, "text") and "Estimated implementation cost" in shape.text:
shape.text = (
"Estimated Implementation Cost:\n\n"
"- Hardware: $0 (Executes natively on existing local consumer RTX 3050 Laptop GPU).\n"
"- Software Licensing: $0 (100% open-source stack).\n"
"- Cloud APIs: $0 (Direct pipeline to NASA MAST public archive).\n"
"- Maintenance: Negligible (Containerized via Docker for instant reproducibility).\n"
"Total Cost: $0."
)
prs.save(output_pptx)
print(f"Successfully saved filled presentation to {output_pptx}")
if __name__ == "__main__":
fill_presentation()