Tharen Candi

Tharen Candi

MSc Computer Science (AI) @ University of Padova · AI and systems

Padova, Italy / Sydney, Australia

EmailLinkedInGitHubDownload CV

Summary

Master’s student in Computer Science (AI major) based in Padova, Italy. Australian and Italian dual citizen 🇦🇺🇮🇹

I’m interested in the intersection of AI and systems. I’m currently working on my thesis with the Machine Intelligence Group (MIG) at IAS-Lab, supervised by Professor Nicola Bellotto, building a RIOT-based platform for on-device terrain segmentation for closed-loop tiny-robot navigation. I will graduate in early April 2027.

Alongside my thesis, I do research on sign language recognition and multilingual representation learning.

Interests

My goal is to work on innovative technologies that positively impact people’s lives.

Skills

Education

MSc Computer Science (AI)
University of Padova
GPA: 28.08/30
BComp (Computer Science)
University of Sydney
GPA: 82.2/100 (Distinction)
Exchange Program
EPFL
GPA: 5.6/6.0
14-week Intensive Italian Language and Cultural Immersion Course
Centro di Lingua e Cultura Italiana per Stranieri · Milan, Italy
Higher School Certificate
Trinity Grammar School
ATAR: 97.65 · Sabre fencing vice-captain

Projects

Master’s

MSc Thesis: Closed-Loop On-Device Perception for Tiny Robots
MSc Thesis · Machine Intelligence Group (IAS-Lab), University of Padova
  • Integrating Rust-based TinyML inference (MicroFlow) into RIOT OS on ESP32-S3 for closed-loop tiny-robot navigation
  • Open-source contribution: adding camera support to RIOT OS with a driver for the Arducam Mini 2MP Plus (OV2640, SPI) camera, with JPEG and raw output, to be contributed upstream
  • Optimising the perception pipeline and models for on-device inference
  • Training and developing Tiny Vision models
  • Targeting a live on-device segmentation demo
RustCRIOT OSESP32-S3MicroFlowTinyML
The Limits of Cross-Lingual Transfer: Evaluating SignCLIP on Italian Sign Language (LIS)
Research Project pageGitHub
  • First study of SignCLIP’s multilingual transfer to low-resource LIS, testing the iconicity hypothesis across zero-shot, few-shot and fine-tuning, on the A3LIS-147 and SignIT datasets
  • Showed that aligning many sign languages to one English text space causes negative zero-shot transfer: it helps iconic signs and hurts non-iconic ones
  • Ran a fine-tuning ablation over six contrastive objectives (InfoNCE, SupCon, GlobalNCE, DHN-NCE, ProLIP, cross-entropy). GlobalNCE raised zero-shot R@1 from 3.7% to 76.2%, and its linear probe (R@1 80.2%) matches the previous state of the art on A3LIS-147
  • On SignIT, outperformed all of the original authors’ non-video baselines using pose keypoints only
PythonPyTorchfairseqMediaPipe Holisticscikit-learn
Universal Sign Language Representations for ISLR
Independent Research
  • Exploring multilingual, language-universal sign representations, motivated by the negative cross-lingual transfer found in the SignCLIP study
  • Developing a pose-based architecture, inspired by multimodal JEPA, that learns language-gated sign embeddings by predicting into a frozen text-embedding space, so representations carry semantic meaning across sign languages
  • Early results (ongoing): above-random positive transfer to sign languages the model has never seen
PythonPyTorchMediaPipe
Automatic Extraction of Anatomical Landmarks of Pinna Shape
Huawei Munich Tech Arena 2026 · Team GoMuDada
  • Built a pipeline that predicts 85 anatomical ear landmarks from 3D head scans, for personalised spatial audio (HRTF)
  • Ranked 12th of 38 teams (top third) on the public leaderboard as an all-Master’s team, in a challenge that recommended PhD members
  • Split the task in two: predict 15 anchor landmarks, then trace the remaining 70 contour points between them, reaching ~1.2 mm mean error overall
  • Anchors: fused three different networks (multi-hypothesis DGCNN, HRNet heatmaps on rendered depth/curvature images, Point2SSM++) with per-landmark agreement weighting, deployed as cross-validated ensembles
  • Contours: traced as geodesic (shortest) paths on the mesh, steered by a statistical shape model prior so they follow the ear’s folds (0.63 mm ceiling), then refined with a graph-attention network
  • Generated synthetic training ears via PCA shape sampling and RBF mesh warping, cutting anchor error by 4%
PythonPyTorchNumPySciPyscikit-learntrimeshPoint-cloud deep learning
Multimodal Speech Emotion Recognition on RAVDESS
Master's Course Project · Speech Processing Project pageGitHub
  • Built an audio-visual system that classifies 7 emotions from RAVDESS clips, evaluated with 6-fold actor-wise cross-validation across all 24 unseen actors
  • Temperature-calibrated late fusion improved every speech model by +5.3 to +7.7 accuracy points (best: 78.5% with LoRA wav2vec 2.0 + face, vs 73.2% speech and 60.4% face alone)
  • Built the FER branch as an XGBoost random forest on MediaPipe facial blendshapes: 376 summary features (7 per-channel statistics over 53 blendshape channels, plus 5 inter-region ratios)
  • Compared five speech pipelines (wav2vec 2.0 and emotion2vec under frozen probes, weighted layers, and LoRA adaptation)
  • Under a strictly matched probe and training recipe, general speech pretraining (wav2vec 2.0) and emotion-specific pretraining (emotion2vec) showed no statistically reliable difference (72.0% vs 68.7%, 95% CI [−0.6, +7.0])
  • LoRA adaptation on wav2vec 2.0 significantly outperformed the frozen weighted-layer probe (+6.2 points alone, +4.1 points fused)
  • Demonstrated modality complementarity: the face model is strongest where speech is weakest (e.g. happy), with fusion providing the largest gains on subtle, normal-intensity clips
PythonPyTorchHugging FacePEFT/LoRAMediaPipeXGBoost
Evaluating Dynamic Object Removal and Scene Stabilisation Strategies for Multi-View Consistent Video
Master's Course Project · Advanced Topics in Data Science, taught by Iro Armeni (Stanford) and Lamberto Ballan · with Nicole Mietto Project pageGitHub
  • Studied why AI-generated video breaks 3D reconstruction: moving objects violate multi-view constraints and flickering textures make COLMAP (SfM) and 3D Gaussian Splatting drop frames, misestimate poses and collapse geometry
  • Compared dynamic object removal strategies against a raw baseline, from 2D masking and inpainting (YOLOv8 or SAM with ProPainter) to causal scene rewriting with the VOID video diffusion model
  • VOID cut LPIPS by about 57% on the car scene (0.169 to 0.073), while 2D masking and inpainting gave only marginal gains and introduced multi-view inconsistencies
  • Stabilised a static industrial-loft scene with CLAHE (for COLMAP) and bilateral filtering (for 3DGS training), recovering 3.9x more 3D points (2,342 to 9,158) and raising PSNR by 9.6 dB (25.1 to 34.7 dB)
  • Concluded that every post-hoc correction still introduces artifacts, so multi-view consistency needs 3D constraints during generation, such as explicit 3D memory
PythonCOLMAP3D Gaussian SplattingYOLOv8SAMProPainterVideo diffusion
Hard Real-Time Systems: Ada Ravenscar vs. Rust RTIC
Master's Exam Project Project pageGitHub
  • Ported the Generic Environment Executive (GEE) hard real-time benchmark from Ada Ravenscar to Rust RTIC on an STM32F429I-Discovery (ARM Cortex-M4), preserving the original task set
  • Built MAST schedulability models for both frameworks, generated from templates with Python, using WCETs measured with the DWT cycle counter through GDB scripts
  • RTIC cut interrupt entry latency by about 45% (267 ns vs 483 ns) and scaled to 100 concurrent tasks with lower release jitter, while Ada ran out of memory after 25 extra tasks (20 KB default stacks)
  • Showed that RTIC’s global interrupt masking adds non-preemptive blocking that rigorous schedulability analysis cannot ignore, and that its O(N) timer queue and separate synchronisation primitives make systems harder to model than Ada’s protected objects
  • At maximum load both frameworks reached about 64–65% utilisation, so their schedulability differences become negligible for millisecond-range deadlines
AdaRustRTICRavenscarARM Cortex-M4MASTPython
UR5 Cube Swap
Master's Course Project · Intelligent Robotics (group work) GitHub
  • A simulated UR5 arm locates two cubes with AprilTags and swaps them between tables, orchestrated by a BehaviorTree with automatic retries
C++ROS 2MoveIt 2BehaviorTree.CPPAprilTag
Autonomous Navigation Between AprilTags
Master's Course Project · Intelligent Robotics (group work) GitHub
  • A mobile robot computes a goal from two AprilTags, drives there with Nav2, then detects cylindrical tables with lidar
C++ROS 2Nav2AprilTag

Undergraduate

Glioblastoma Cell Segmentation Pipeline
Undergraduate Capstone Project GitHub
  • Engineered and deployed an automated deep learning pipeline for segmentation of gigapixel whole-slide images of glioblastoma tissue from TCGA-GBM
  • Trained a DRAN CNN (U-Net) in TensorFlow, and built the pipeline with OpenCV, Celery and Redis
  • The system includes a web portal that generates tissue masks, tools that download and validate TCGA-GBM data from the GDC, and a management server for transferring masks
PythonTensorFlowKerasOpenCVOpenSlideNumPyCeleryRedisFlaskReactLinux
JOS Operating System Kernel
Undergraduate Coursework @ EPFL
  • Built a 32-bit x86 kernel in C and Assembly: boot process, memory management, user environments, preemptive multitasking, file system, spawn and shell
CAssemblyx86Kernel programming
Multiplayer Battleships for the Nintendo DS
Embedded Software Project
  • Designed and implemented a multiplayer game entirely in C, working directly with the NDS hardware: interrupts, Wi-Fi, graphics and button input
  • Wrote txt4libnds, a small text-engine library for creating and managing text objects in libnds projects
ClibndsEmbedded programming

Other

Multiprocessor (NUMA) and CUDA experiments in C
Experiments on the specific challenges of maximising performance on multiprocessor CPU and GPU systems.
Motion block visualisation
Motion estimation and visualisation in Python with OpenCV, using sqrt(SSD) macroblock matching.
16-bit CPU design in Verilog
Designed and implemented a 16-bit CPU with an 18-instruction ISA, plus a Python assembler.
Functional programming in Scala
Labs from Martin Odersky’s functional programming course.
Thread-safe B-tree data structure in C

Work Experience

Graduate Intern – Carbon Trading and Origination
Glencore
  • Fully automated supply and demand forecasting operations with ETL pipelines (Python, SQL Server, ActiveBatch): data ingestion, manual cleaning and ArcGIS workflows for the Clean Energy Regulator’s ACCU Register, saving the team 5 hours of manual work per cycle
  • Developed supply-side carbon market models and analytics in Power BI and Excel
  • Wrote technical and end-user documentation for the automated workflows, so every team member could maintain them long-term
PythonSQL ServerActiveBatchETLArcGISPower BIExcelData analysisTechnical documentation
Private Tutor
Self-employed
  • Tutored university students in OOP and systems programming using C, Java and Python
TeachingCJavaPythonOOPSystems programmingCommunication
Online Department Shift Leader
Coles
  • Led online order fulfilment for pickup and delivery, managing time-sensitive logistics, customer service and manual labour
Musical Staff
Trinity Grammar School
  • Played guitar and keyboard in the school production of School of Rock: The Musical and helped students learn their instruments for their on-stage roles

Honours and Awards

Master's Study Grant
Italian Ministry of Foreign Affairs
Study grant for a Master’s degree in Italy.
Dean's List for Excellence in Academic Performance
USYD
Academic excellence in the Bachelor of Computing.
Vice-Chancellor's Global Mobility Scholarship
USYD
Scholarship for high-achieving students to study on exchange.
HSC Top Achiever in Information Processes and Technology
NESA
Ranked 6th in the state.
School Subject Prizes
Trinity Grammar School
First in course for Software Design and Development, Information Processes and Technology, and Advanced English, in both Year 11 and Year 12.
Battle of the Bands Winner
Trinity Grammar School
For a performance of “The End” medley by The Beatles.