Other
Rail catenary pole placement automation
Weeks of expert engineering work, reduced to seconds.
Weeks to seconds · Engineering time
The challenge
Electrifying a railway line means placing catenary poles one by one along its entire length. The spacing rules are anything but fixed: poles can sit up to about 65 m apart on straight track but tighten to as little as 27 m on sharp curves, with the exact maximum set by curve radius and cant, read from a reference table dozens of pages long.
Then there are the structures. No pole can stand on a tunnel, bridge, viaduct, culvert or overpass, and each structure type carries its own safety buffer, creating a forbidden zone around it.
The firm did this by hand: cross-referencing a spreadsheet, a PDF table dozens of pages long and a structure list, then marking every position on a drawing, kilometre after kilometre. A single line took weeks, small errors were easy to miss, and the whole job started over whenever the line design changed.
The approach
I built a Python system that works from the firm's own existing project files, with no new data entry. It isn't tied to one line: track geometry, structures and the spacing table are all read from each project's own files, so a new line means a new configuration file, not new code.
- It reads the track geometry - straights, curves and transition (clothoid) segments, with radius and cant - directly from the engineering spreadsheet.
- It turns the maximum-spacing PDF table into structured, cached data using an LLM, removing the manual table lookup entirely.
- It converts tunnels, bridges, viaducts, culverts and overpasses into forbidden zones with the safety buffer defined for each structure type, merging any that overlap.
- It walks the line from start to finish and places every pole according to the defined rules: tightening spacing through curves, skipping tunnels, and adding a pole just before the entrance and just after the exit.
- It converts kilometre positions into real UTM coordinates - using Fresnel integrals through the transition curves - and outputs an Excel file for review plus DXF/DWG that open directly in AutoCAD.
The process itself changed. What an engineer used to lay out by hand over weeks is now placed automatically against the defined rules, drawn straight into an AutoCAD file, and delivered ready to use.
Correctness was proven, not assumed. The output was compared pole for pole against 4,351 coordinates the firm's own engineers had placed by hand on a 148 km reference line, backed by 68 automated tests covering geometry, structure handling, coordinate conversion, placement logic and output format.
Stack: Python, a greedy placement algorithm, LLM-assisted PDF parsing, UTM coordinate transformation, and Excel/DXF/DWG output.
The outcome
Results that moved the needle.
- Weeks to seconds
-
Engineering time
A multi-day manual task became a single command.
Want similar results for your project?
Every project above started with a conversation. Let's figure out what yours needs.
Keep exploring
More projects.
D-Risk - MedTech Marketplace with AI Company Profiling
A three-sided marketplace linking medtech startups with investors and specialist freelancers - matched through AI document profiling.
Integrated LoRa Sensor Monitoring & Analytics System
Turning raw LoRa telemetry from tree-mounted sensors into live dashboards that answer watering and growth questions - built in one week.
Revenue Administration MCP Server
An assistant that reads Turkish tax legislation from its official source at the moment you ask and answers with the article behind it - a system a certified acc
Reliability of LLMs in Safety-Critical Requirements Engineering
A controlled experiment measuring what an ungrounded, off-the-shelf chatbot contributes to safety-critical engineering.
DSGENAI - AI Safety Requirements Engineering Platform
Stabilising and modernising an AI-driven safety-requirements platform - Flask to Streamlit, GPT-5.1, and critical data-leak fixes.
Retrieval-Augmented Generation (RAG) Documentation Assistant
A RAG assistant that turns stacks of PDFs into a searchable knowledge base where every answer traces back to the source document.
LLM Prompt Optimization for Legal-Clause Classification
Comparative research that lifted F1 from 0.62 to 0.76 on Terms-of-Service clause classification through automatic prompt optimisation alone - without retraining
Smart Contract Analysis with NLP
An NLP system learns from Siemens' legal team's past contract revisions, flags the same clauses in a new contract, and proposes the edit that was made before.
Football Player Potential Prediction Model
A classification model predicting whether a player will be marked "highlighted" from 39 scout attribute scores - ROC-AUC 0.86 under 10-fold cross-validation.
Football Player Ranking System
A scoring engine that ranks players not by total score, but by how many attributes they exceed the statistical average for their own position.
Football Player Position Recommender System
A recommender that compares a player's attribute profile against the profiles of other positions and finds players could be more valuable in a different role.
Automated Connecting-Flight Optimization
A tool that recalculates every connection possible through the hub - day by day, with passenger volumes - when a single flight's time is shifted.
Flight Passenger-Count Prediction
A demand model predicting booked passengers on one-stop routes from a flight's own characteristics, selected by comparing eleven regression models.
Turkish Image-Captioning Benchmark on MS COCO 2014
A human-verified Turkish caption dataset covering all of MS COCO, plus five models trained on it - a new reference point for Turkish image captioning.
ESG Diversity & Sentiment Solution - CFA Poland Hackathon
An ESG prototype scoring gender diversity and news sentiment - 2nd place among 44 teams from 28 universities.
Automated ESG Scoring System - HackBogazici
An automated ESG scoring engine built from four scraped data sources - 2nd place among 14 hackathon teams.