|
Contact information: |
A small collection of 5 coding projects.
- Multi-Dimensional Spectrogram Application for Live Visualization and Manipulation of Large Waveforms (go to)
- Dynamic Control Room Interfaces for Complex Particle Accelerator Systems (go to)
- A Shift Scheduling tool (go to) (published as a SW paper)
- DynaGUI (go to) (published as a SW paper)
- SPMTUI (go to)
Some fun coding projects from courses I have completed.
Autumn 2025: Applied Computational Physics and Machine Learning, consisting of 3 interesting projects:
- SPH Simulations in Computational Physics (go to)
- Neural Network (NN) Tagger for Hadronic W/Z → qq̄ Jets (go to)
- MC ((go to)
Here are some personal preferences when it comes to programming, writing, and analysing data. The only reason to have them here is because they make my profile page look fancy with all these badges.
| Programming languages (in a descending order) |
|---|
| ( ... this is very political and I am heavily biased ... ) |
| Data Science packages | Writing |
|---|---|
| CI | AI | OS | IDE |
|---|---|---|---|
Beneath is a short description of the small collection of 5 coding projects.
Multi-Dimensional Spectrogram Application for Live Visualization and Manipulation of Large Waveforms
|
Collect, manipulate and visualize large waveforms at high repetition rates (tested with up to 14Hz) in real time or archived data in 2D (using heatmaps) or 3D, utilizing Python and the pure-python graphics and GUI library PyQtGraph and PyQt5 with Python-OpenGL bindings. |
Commissioning of complex machines for the first time is the same as commissioning something one knows nothing about. This paper describes three well-used dynamic control room interfaces.
A Computational Approach to Generate Multi-Shift Rotational Workforce Schedules.
Phase 1: The algorithm takes into account a list of inputs (constraints) and returns all possible solutions. The schedule maker can then select the most feasible solution(s) to proceed with.
Phase 2: A feasible solution was selected and is constructed to its final shape, and is then ready for exportation (in .txt or .CSV format).
DynaGUI stands for Dynamic Graphical User Interface and is a method to construct temporary, permanent and/or a set of GUI:s for users in a simple and fast manner. Developed during shift works at a particle accelerator, the initial goal was to fill in some functions that were then missing: Fast dynamic construction of new control system GUIs for various purposes. The code is fully built in Python.
SPMTUI stands for Simple Project Management Text-based User Interface and was made for myself for logging and keeping track of tasks and projects to do, in progress, and completed. The code is fully built in Python. SPMTUI functionalities includes:
- Commands with tab-completion
- Colour-coded states of each task
- Description of each task
- Logbook tracking of task initiation and changes (both manual and automatic entries)
I ended up not using this tool but instead rely on structured weekly planning checklists instead.
Developed and implemented Smooth Particle Hydrodynamics (SPH) simulations in Python to model both fluid and astrophysical systems, covering a classic 1D shock tube problem extended into a more advanced 3D Planetary Collision scenario. Through these implementations, I demonstrated proficiency in numerical physics, algorithm design, and data visualization for high-performance scientific computing.
Implemented a 1D SPH solver to simulate the evolution of pressure and density discontinuities in Sod's shock tube, a standard benchmark in computational fluid dynamics. The model reproduced the expected shockwave propagation and rarefaction patterns, validating the accuracy of the SPH formulation and numerical scheme. This stage of the project focused on verifying the correctness and stability of the core simulation engine before extending it to three dimensions. The end result was the animation visualizing the shockwave propagation and rarefaction patterns.
Extended the verified SPH framework to a 3D gravitational simulation of two colliding Jupiter-like gas giants, incorporating self-gravity, rotation, and realistic energy transfer. The simulation captured key physical behaviors such as orbital spin-up, impact dynamics, and post-merger stabilization. This part of the project showcased skills in high-dimensional data handling, numerical stability optimization, and the physical modeling of complex astrophysical systems. The end result was the movie visualizing the collisiong between the planets.
Developed a lightweight NN classifier to identify boosted W/Z→qq̄ jets in ATLAS Open Data, distinguishing them from generic Quantum Chromodynamics (QCD) background jets. The model was trained on Monte Carlo–simulated events and evaluated on real Large Hadron Collider (LHC) data using ROC curves and purity metrics. This project demonstrates skills in particle-physics data analysis, NN design, and performance benchmarking against traditional physics-based selection methods.
A cut-based selection model was implemented to establish a performance reference using simple, interpretable physics criteria. This approach leveraged kinematic features such as jet and lepton momentum, pseudorapidity, and angular separation to isolate likely signal events. While transparent and physically motivated, the method yielded limited signal purity, motivating the introduction of machine-learning techniques for improved discrimination.
Designed and trained a compact Multi-Layer Perceptron (MLP) using PyTorch with three hidden layers, ReLU activations, dropout regularization, and sigmoid output for binary classification. Training was performed on simulated events with three optimizers (Adam, RMSprop, and SGD) to compare convergence stability and model performance. The final networks achieved strong separation power on the test set, reflected by high AUC values and smooth learning curves over ~500 epochs. The figure beneath shows the loss and accuracy improvements as a function of epochs in the top-left and top-right subplots, respectively, whereas the ROC curve (on the test split) and the purity as a function of the threshold are shown in the bottom-left and bottom-right subplots, comparing the performance of the different optimizers MLPs. Furthermore, the best epochs are indicated in the top for the respective models.
Applied the trained neural-network taggers to real ATLAS Open Data to evaluate their effectiveness on experimental jet events. Each model's optimal working point was determined using ROC-based thresholds, followed by purity calculations and jet-mass distribution analysis. The best-performing model (RMSprop-trained) achieved over 83% purity, significantly outperforming the cut-based baseline with ~51% purity, confirming the NN's superior capability in identifying hadronic W/Z decays. In the figure beneath we can observe the normalized densities for all events, cut-based (simple physics-driven selection) and NN-selected data with different optimizers for NN-selections, with the purities indicated atop of each subplot for the single optimizer comparison subplots.
Explored how elastic behavior can emerge from microscopic statistical mechanics using MC simulations of a one-dimensional chain model. By sampling and reweighting ensembles of randomly oriented molecular links under an external force, the simulation demonstrates the transition from entropy-dominated to energy-dominated regimes. The study shows that Hooke’s law naturally arises from the collective behavior of microscopic degrees of freedom, linking statistical fluctuations to macroscopic elasticity.
Task 1 – Unbiased Ensemble: An ensemble of rubber bands with randomly oriented links was simulated to compute the probability distribution of total extension. The Monte Carlo histogram closely matched the analytical binomial distribution (P(L)), confirming correct random sampling and normalization. Small deviations at the distribution edges were consistent with expected statistical uncertainties, validating the method’s accuracy.
Task 2 – Reweighting for Biased Ensembles: Boltzmann reweighting factors (e^{\beta f L}) were applied to unbiased configurations to estimate the force-dependent probability distribution (P_f(L)). This approach accurately reproduced analytical predictions for small forces but degraded as (f > 0.1) due to insufficient overlap between unbiased and biased ensembles. The effective sample size (\mu_{\text{eff}}) quantified this loss of reliability, illustrating the practical limits of reweighting.
Task 3 – Direct Sampling of Biased Configurations:
To overcome reweighting limitations, biased configurations were generated directly using force-dependent probabilities (p_+(f)) and (p_-(f)). The simulated mean extension (\langle L\rangle(f)) agreed with the theoretical expression (Na\tanh(\beta f a)), reproducing Hookean linearity at low forces and saturation at high forces. A dedicated animation visualized this process, showing how microscopic link orientations progressively align with increasing force: A clear depiction of entropy giving rise to emergent macroscopic elasticity. This animation is attached below, where the rubberband link extension is a function of force




