← Back to Projects

Multilateration 3D Positioning

3D location engine that estimates where an object is in space and validates accuracy through realistic simulation.

Overview

Multilateration 3D Positioning focuses on a practical challenge: locating physical objects accurately in the real world. It is impressive because it combines math, simulation, and implementation to validate results rather than relying on theory alone. The project creates confidence in tracking accuracy by testing end-to-end in repeatable scenarios.

Demo

No live demo available for this project. See the repo for setup and run instructions.

Description

Python library and Blender pipeline for 3D localization: estimate a tag’s position from known anchor positions and measured distances. Supports trilateration (3 coplanar anchors), multilateration (4+ anchors via least-squares or closed-form), and brute-force optimization. Blender scripts export scene data to CSV; demos read CSV and run the solvers; results feed into the Baretag positioning pipeline. Demonstrates numerical geometry (Cayley–Menger, least-squares), Python scientific stack, and Blender scripting for validation.

multilat_lib.py Core solvers. trilateration(anchors, distances) uses three anchors (same Z unless ignore=True): builds a triangle, computes volume via a Cayley–Menger–style determinant, then tag height and position from the plane normal. multilateration_minimum_squared does Larsson-style linear least squares; multilateration_closed_form solves exactly for 4 anchors. brute_force minimizes squared distance error (optionally fixing x,y and solving for z). geo_to_local_xyz / local_to_geo convert between lat/lon/alt and local ENU (meters).

trilateration.py Demo that reads tag_data.csv, builds anchor positions and distances to the tag (Sphere), calls trilateration(), and prints estimated vs actual position and error in Z.

tag_response.py and demos tag_response.py is a Blender script (bpy): it reads Sphere and Cube objects, computes Euclidean distances from the sphere to each cube, and writes a CSV (Point, X, Y, Z, Distance to Sphere) for use by the Python solvers. Other scripts (real_geodata.py, multilateration.py) use the same library and CSV/geodetic conventions for real-world or multi-anchor demos.

Research references The implementation was informed by Xu et al., A Precise 3D Positioning Approach Based on UWB with Reduced Base Stations; Martin Larsson, Localization using Distance Geometry: Minimal Solvers and Robust Methods for Sensor Network Self-Calibration; and Rainer Mautz, Washington Ochieng, Gary Brodin, and Andy Kemp, 3D Wireless Network Localization from Inconsistent Distance Observations.

Project photos

Blender simulation

Simulation scene used to generate anchor/tag positions and validate the solver output against known 3D geometry.

Tech & tools

  • Python
  • Blender
  • 3D localization
  • Multilateration

Highlights

  • 3D multilateration/localization algorithm implementation
  • Blender-based simulation and visualization pipeline
  • Validation and accuracy analysis for positioning
  • Integration path with Baretag for real-world deployment

More projects

tinyTemp

Custom tiny temperature monitor that evolved from an ATmega328P prototype into a compact ATtiny85 OLED PCB.

Award winning

WorldWide Rover

Award-winning internet-controlled rover that lets users drive and monitor a physical robot from anywhere in real time.

BareTag Tool Tracker

Smart tool tracking that helps teams instantly find equipment, prevent loss, and stay coordinated in real time.

Buffet

Automated trading system that tests strategies, learns from market behavior, and executes decisions with built-in risk controls.

HeadHunter

AI-powered job search assistant that helps people find better-fit roles faster, with smarter resume matching and cleaner tracking.

Meal Planner

Personal meal planning app that turns “what should I cook?” into a clear weekly routine with pantry awareness and shopping support.

BrickVision

Turns ideas or 3D models into buildable LEGO-style instructions, making custom creations faster and more accessible.

Pong on Assembly

Classic Pong rebuilt from the ground up in hardware and low-level assembly, showing full-stack systems engineering in action.

Custom Single-Cycle 32-Bit Processor

From-scratch 32-bit processor design that brings core computer architecture concepts to life in working hardware.

ThreadLib Disk Scheduler

C++ user-level threading library paired with a concurrent disk scheduler that coordinates requester threads and SSTF service.

RISC-V Encryption

Encryption concepts implemented at the hardware-software boundary, showing security logic at instruction level detail.

PUF Tester

Hardware security testing toolkit for measuring unique device fingerprints and reliability under real test conditions.

tinyTemp

Custom tiny temperature monitor that evolved from an ATmega328P prototype into a compact ATtiny85 OLED PCB.

Award winning

WorldWide Rover

Award-winning internet-controlled rover that lets users drive and monitor a physical robot from anywhere in real time.