Fetching the latest programs, projects, and workspace data.

Simulating electromagnetic wave propagation
Showing 5 of 21 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Gaurav.Sharma
gprMax users currently visualize simulation output using static terminal scripts with no interactivity. This project builds a reactive web-based dashboard using marimo, replacing that workflow with four components: parameter controls with live geometry preview, a simulation progress tracker, post-processing visualization for A-scans and B-scans, and a set of Reactive Recipes for common modelling scenarios. A working prototype covering all three visualization components is already built and running against real gprMax HDF5 output on the devel branch.
Mentors: Student: ABH123
Problem: gprMax's devel branch GPU solver (cuda_opencl/ directory) supports CUDA, OpenCL, and Metal via shared kernel templates. But the Plane Wave (TF/SF) source from GSoC 2023 remains CPU-only Cython, forcing CPU-GPU transfers every timestep that negate GPU speedup. solution: I will create new kernel templates in cuda_opencl/ following the existing multi-backend pattern: 1) Create knl_planewave_updates.py: batched kernel updating all six 1D DPW auxiliary arrays in one launch. 2) Create knl_tfsf_injection.py: TF/SF correction injection at six boundary faces, coalescing optimized per-face with shared memory buffers. 3) Optimize boundary storage: SoA layout, 128-byte padding, precomputed index maps. 4) Testing suite: GPU vs Cython comparison across free-space, slab, oblique, and polarization cases. Why me : I built a PyCUDA heat diffusion solver with shared memory tiling, vectorized loads, and occupancy tuning, the same techniques this project needs. I have raised 8+ issues and multiple PRs to gprMax and studied all 13 files in cuda_opencl/ in depth. Deliverables: multi-backend GPU kernels for DPW update and TF/SF injection, optimized memory layout, and automated testing suite. Outcome: TF/SF runs entirely on GPU, zero CPU fallback.
Mentors: Student: Sahibjot
gprMax, an open-source FDTD electromagnetic simulator used in published research across GPR infrastructure assessment, landmine detection, archaeology, glaciology, and NASA Mars exploration (RIMFAX/Perseverance), currently lacks comprehensive automated testing. This proposal delivers a three-tier test framework: (1) unit tests covering every core Python and Cython module in isolation; (2) integration tests verifying CPU, GPU, and MPI backend consistency and HDF5 I/O correctness; and (3) physics validation tests that compare simulation outputs against known analytical solutions including plane-wave propagation, PML reflection coefficient, energy conservation, and the reciprocity theorem. All tests run automatically on Ubuntu, Windows, and macOS via GitHub Actions on every push to devel. The end-of-summer deliverable is a production-grade, CI-integrated test suite ready for merger into the main gprMax repository.
Mentors: Student: Jichao Fang
This project aims to enhance gprMax's user support capabilities by integrating advanced Language Model (LLM) technologies. The core goal is developing an AI-driven chatbot capable of interpreting natural language user instructions and generating accurate, ready-to-run gprMax input files. The project is scheduled for completion within a 12-week timeframe, divided into clear milestones ensuring systematic progression and iterative refinements. The final deliverables will great improve the user experience of gprMax and laying foundation for future AI integration.
Mentors: Student: Karan Khajanchi
This project aims to implement a Near-to-Far Field Transformation (NFFT) feature in gprMax. This will enable users to compute the far-field radiation patterns and radar crosssections(RCS) from the near-field data. It will expand gprMax’s capabilities for antenna design, scattering analysis, etc. I propose to implement the Near-to-Far Field Transformation (NFFT) module and its integration at several key points in the existing workflow: - Adding the NFFT command - Module for Field Sampling during FDTD - Post-Processing & Far-Field Calculation - Integration with the API - Validation and Testing - Documentation and Review