Draw a digit
I built this network from scratch in sixth form, using only NumPy for the matrix operations. It reaches 99% accuracy on the MNIST handwritten digits. Draw one in the box and the original trained weights will classify it.
MNIST preprocessing: crop to 20 px and centre by mass.
Play the engine
I built this engine in Python for my AI coursework, then ported it to JavaScript for this site. It plays Chess Fragments, a 5×5 variant with one new piece: the Right †, which moves like a rook or a knight. You play White.
Your move.
- depth
- –
- nodes
- –
- time
- –
- eval
- –
- line
- –
Race the searches
In my penultimate year of school I led a team that built a maze solver for a STEM fair. It read mazes from a webcam with OpenCV and solved them with graph search. Here its three searches, breadth-first, A* and depth-first, race on the same maze.
- visited
- –
- path
- –
- frontier peak
- –
Projects
-
2026
ongoing6n
A fantasy rugby prediction engine, now covering competitions beyond the Six Nations. A point-in-time data pipeline gathers player form, team play-shape metrics, world rankings, past results and weather for gradient-boosted forecasts.
-
2026
chessweb
A two-player chess game in the browser, built with Flask and WebSockets. The backend handles user accounts and validates moves with an object-oriented model of the pieces.
-
2026
bible-memorisation-app
A React app for memorising Bible verses, scheduled with SM-2 spaced repetition.
Experience
-
Jun–Aug 2026
SouthamptonUniversity of Southampton Undergraduate Research Intern
Researched how memristive devices can act as artificial synapses, supervised by Dr Liudi Jiang and Dr Ruomeng Huang. Simulated new devices and connected the synapse models to a published neuron model.
Also built the interactive animations and a graphing platform for comparing results.
-
Oct 2022
LondonIbex.ai Software & Data Engineering Intern
Extracted and cleaned a customer dataset from production databases with Pandas, then trained regression and classification models on Azure Databricks to relate marketing strategy to client response rates.
-
Jul 2022
South AfricaIoT.nxt Data Analysis Intern
Analysed match statistics for provincial rugby players and wrote a report on the findings.
-
Jul 2022
South AfricaCodehesion Software Development Intern
Supported a team building a supply-chain management system for a large high-street retailer, and worked on a customer-loyalty system for an online gaming company.
Background
I’m in the final year of a BSc in Computer Science at the University of Southampton, where my top mark is 86% in Artificial Intelligence. My dissertation develops adversarial defences for evidence-based stance detection with LLMs.
Before that, I took A levels at Hampton School: A* in Mathematics and A in Further Mathematics, Computer Science and Physics.
In May 2025 I won the university Cyber Security Society CTF, with challenges across cryptography, web security, reverse engineering, binary exploitation, RFID hacking and protocol engineering.
Artificial synapse research
These four interactive animations come from my summer research internship. They show how biological synapses work, how a memristor’s short-term memory behaves, and how the artificial-synapse models compare.
Contact
You made it to Neptune; say hello.
mail@williamgreenfield.comHow the orrery is scaled and sourced
Scale
- Orbital angles and positions are calculated from JPL Keplerian elements.
- Planet and Sun sizes are scaled to the square root of their true radii.
- Orbital distances use a logarithmic display scale to keep the inner orbits clear of the Sun.
- Zoom changes every body through the same perspective projection. Zoom-out ends at the complete system view. Every planet retains its surface texture.
- For example, Jupiter’s true radius is about 11 times Earth’s, but it is drawn about √11 ≈ 3.3 times larger.
Imagery
The default Sun maps Matteo’s surface detail onto a red-orange photosphere with limb darkening. Colour comparisons: golden highlights, white, amber, orange and red-orange. All use Matteo’s surface detail at the same exposure. The warmer colours are artistic options, not measured emission colours.
Custom Sun preview: a 3D sphere using NASA/SDO AIA observations from a full solar rotation. Credit NASA/SDO and the AIA science team. The surface combines observations from different dates. The orange colour and photographic prominence layers are illustrative. The layers approximate depth; they are not a measured 3D corona. No AI imagery is used.
Pedro’s complete model comparison uses High Resolution Solar system by Pedro B. Goulart (Pebegou), under CC BY 4.0. The preview adapts his meshes and materials to this orrery’s scale, lighting and rotation. The colours are artistic interpretations.
The Sun uses Matteo Pascale’s Realistic Sun scene, under the Blendkit Royalty Free licence. Its baked procedural detail is recoloured in the browser with reduced exposure. Custom animated plasma loops surround the Sun. They are illustrative, not a measured plasma simulation. His Earth scene remains an optional Earth preview, with adapted lighting and atmosphere. View original materials.
Earth: NASA/GSFC Blue Marble, with satellite cloud and polar imagery. Mars: NASA via NOAA Science On a Sphere. These are global image composites.
Original Sun comparison: an artist-prepared Solar System Scope global texture (CC BY 4.0), recoloured with the darker orange palette of the original SDO image. This is an illustrative reconstruction. The separate NASA/SDO prominence photograph rotates on a fixed plane. It does not represent a measured 3D corona. NASA imagery follows its media usage guidelines.
Uranus and Neptune: atmospheric reconstructions credited to NASA by ESO Supernova (Uranus, Neptune; CC BY 4.0). These are not direct global photographs.
Other textures and Saturn’s rings: Solar System Scope (CC BY 4.0). Milky Way backdrop: ESO / S. Brunier. Each body turns at its measured rotation rate from its IAU orientation, and planets are lit from the Sun’s direction; at fast time scales the spin is shown slowed so it stays readable. Asset sources and processing details.
Click a planet to revisit a section.