<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Builds on Elias J. Willemse</title><link>/builds/</link><description>Recent content in Builds on Elias J. Willemse</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 24 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="/builds/index.xml" rel="self" type="application/rss+xml"/><item><title>Critical thinking infrastructure: core principles and architectural decisions</title><link>/builds/critical-thinking-infrastructure/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>/builds/critical-thinking-infrastructure/</guid><description>&lt;p>&lt;strong>Updated: 2026-04-09&lt;/strong> | &lt;em>This work accompanies my application to the &lt;a href="https://encode.pillar.vc/">Encode AI fellowship&lt;/a>.&lt;/em>&lt;/p>
&lt;p>This document sits upstream of all engineering documents for the critical thinking infrastructure platform. It establishes the nine principles that design and implementation decisions must satisfy, with the motivation for each, a concrete test, and a supporting figure. When a downstream document drifts, this is the reference to check. When a principle needs justification, this is the document to point to.&lt;/p></description></item><item><title>MCARPTIF Solver and GUIs</title><link>/builds/mcarptif-solver/</link><pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate><guid>/builds/mcarptif-solver/</guid><description>&lt;h1 id="mcarptif-solver-and-simple-guis">MCARPTIF Solver and Simple GUIs&lt;/h1>
&lt;p>These projects deal with solving very-large, city-wide waste and recycling collection problems.&lt;/p>
&lt;p>The source code is available at: &lt;a href="https://github.com/ejwillemse/mcarptif">https://github.com/ejwillemse/mcarptif&lt;/a>.&lt;/p>
&lt;p>A very simple GUI to illustrate how it works is available at: &lt;a href="https://github.com/ejwillemse/mcarptif_gui">https://github.com/ejwillemse/mcarptif_gui&lt;/a>.&lt;/p>
&lt;p>The code was adapted and eventually made it into a commercial service offering, as per this demo, where we ran planning scenarios:&lt;/p>
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
 &lt;iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" src="https://www.youtube.com/embed/vTAcVuoJYQw?si=BoftnswqLJZMrr5J" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen>&lt;/iframe>
&lt;/div>
&lt;p>We also tested some modifications, such as better clustering through convex-hull constraints:&lt;/p></description></item><item><title>SGData Platform</title><link>/builds/sgdata-platform/</link><pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate><guid>/builds/sgdata-platform/</guid><description>&lt;h1 id="sgdata-platform">SGData Platform&lt;/h1>
&lt;p>&lt;strong>Status: Active&lt;/strong> | Source code: &lt;a href="https://github.com/second-order-ai/sgdata_platform">https://github.com/second-order-ai/sgdata_platform&lt;/a>&lt;/p>
&lt;p>A &lt;a href="https://kedro.org/">Kedro&lt;/a>-based data platform for sourcing, processing, and analysing Singapore geospatial and government data. It ingests data from five distinct sources, processes each independently through Kedro pipelines, and converges everything into a unified spatial-relationship layer.&lt;/p>
&lt;h2 id="data-sources">Data Sources&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Source&lt;/th>
 &lt;th>What it provides&lt;/th>
 &lt;th>Scale&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;a href="https://data.gov.sg/">data.gov.sg&lt;/a>&lt;/td>
 &lt;td>Singapore government open data catalogue + downloads&lt;/td>
 &lt;td>5,114 datasets, 467 GeoParquet files&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Foursquare Open Source Places&lt;/td>
 &lt;td>Commercial POI dataset for Singapore&lt;/td>
 &lt;td>435K places, 434K geocoded&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>OpenStreetMap&lt;/td>
 &lt;td>Buildings, roads, POIs, land use, boundaries&lt;/td>
 &lt;td>155K buildings, 252K road segments&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Overture Maps&lt;/td>
 &lt;td>Buildings, places, addresses, transport, divisions&lt;/td>
 &lt;td>311K buildings, 134K places, 141K addresses&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Microsoft Global ML Building Footprints&lt;/td>
 &lt;td>AI-derived building polygons&lt;/td>
 &lt;td>123K building footprints&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="architecture">Architecture&lt;/h2>
&lt;p>The platform is structured as a &lt;code>uv&lt;/code> workspace with seven independent &lt;a href="https://kedro.org/">Kedro&lt;/a> sub-projects, each responsible for one data source or processing stage:&lt;/p></description></item><item><title>Singapore Postcode Geocoder</title><link>/builds/singapore-postcode-geocoder/</link><pubDate>Fri, 24 Jan 2025 00:00:00 +0000</pubDate><guid>/builds/singapore-postcode-geocoder/</guid><description>&lt;h1 id="singapore-postcode-geocoder">Singapore Postcode Geocoder&lt;/h1>
&lt;p>A &lt;a href="https://sg-postcode-geocoding.streamlit.app/">simple app&lt;/a>, using &lt;a href="https://kedro.org/">kedro&lt;/a> and &lt;a href="https://streamlit.io/">streamlit&lt;/a>, that adds lat-long coordinates to a data file which has Singapore postcodes in it. Any column can contain postcode info, and it can be part of a longer string. The app finds the best column to use, automatically extracts the postcodes, and then adds the lat-long coordinates.&lt;/p>
&lt;div class="about-image">
 &lt;img src="/images/sg-postcode-geocoding-streamlit-screenshot.jpg" alt="Singapore postcode geocoder screenshot" style="width: 100%; height: auto; display: block; margin: 0 auto;">
&lt;/div>
&lt;span style="color: #666; font-size: 0.8em; text-align: center; display: block;">&lt;a href="https://sg-postcode-geocoding.streamlit.app/">Singapore postcode geocoder&lt;/a>
&lt;/span>
&lt;/br>&lt;br>
&lt;p>It&amp;rsquo;s an exercise that I&amp;rsquo;ve had to repeat very often when assisting clients with logistics-based planning and analysis. For logistics, you need to know where stuff is located.
Often, this data, specifically the geographical coordinates, is not captured, but there are some address info.
There are various ways and services to go from address info to coordinates, but they tend to be quite slow, some are expensive, and they usually work one address or location at a time (not fun if you are dealing with thousands).
Given that Singapore is really-really-really good at making their data available (check out &lt;a href="https://data.gov.sg/">data.gov.sg&lt;/a>), it&amp;rsquo;s possible to custom-build something that does this.
And after getting the lon-lat coordinates, you can apply some pretty cool models, and you can create some pretty maps.&lt;/p></description></item></channel></rss>