Web Design · UI/UX · Creative Coding

Arabesque

MSc Digital Media Design Thesis · University of Edinburgh
Client
MSc Digital Media Design Thesis — University of Edinburgh
Role
Designer & Developer — Sole Creator
Year
2024
Tools
PHP · Fat-Free Framework · MySQL · JavaScript · P5.js · GSAP · Driver.js · SVG.js · Bootstrap · HTML / CSS · MidJourney
Overview

Arabesque

View Live Project

Arabesque is a full-stack web platform celebrating Islamic geometric patterns — built from the ground up as my MSc Digital Media Design thesis at the University of Edinburgh. It combines a curated legacy pattern database, step-by-step SVG tutorials, a generative Pattern Generator built on Hankin's algorithm, a Rosette Generator built in P5.js, a contributor leaderboard, a points-based community system, and a moderated admin pipeline. Brand, UX, front-end, back-end, and database — all sole-authored.

Services
Web DesignWeb DevelopmentUI/UX DesignBrand IdentityLogo DesignInteractive DesignConcept DevelopmentArt Direction
01
The Brief
Make Islamic geometric pattern design legible and approachable. Build a public-facing platform where casual browsers can appreciate the work, students can learn to draw the patterns step-by-step, designers can generate their own, and contributors can grow the database — all wrapped in a brand that feels native to the subject.
02
The Approach
Designed three user personas first (casual browser, illustrator/designer, knowledge contributor) and let each one drive a distinct page archetype. Built the visual identity around a Double Octagon motif and a single signature teal (#98D5D8). Implemented the platform on PHP / Fat-Free Framework with a five-table MySQL schema, async JavaScript for live search and pattern loading, GSAP for the homepage motion, P5.js for the generators, SVG.js for the step-by-step tutorial viewer, and Driver.js for in-page onboarding. Passwords are hashed, queries are prepared, admin moderation gates every community submission.
03
The Outcome
A live, public, production-quality platform — gallery, generators, contributor system, admin pipeline, and brand all working together. Exhibited as part of the MSc thesis at the University of Edinburgh.
Concept
Three personas · one platform

The platform was built around three user personas — a casual browser exploring beautiful patterns, a designer or illustrator looking for generative tools, and a knowledge contributor adding to the database. Each persona drove a distinct surface: discovery, creation, contribution. The whole experience routes back to a single shared library of patterns.

Concept 1
Concept 2
Concept 3
Tools & Libraries
PHP · MySQL · JavaScript · P5.js · GSAP · SVG.js · Driver.js

A full-stack JavaScript-heavy build: PHP and Fat-Free Framework on the back end, MySQL for the data layer, vanilla JavaScript and AJAX for async loading, P5.js for the generators, SVG.js for animated tutorial drawing, GSAP for the homepage motion, Driver.js for onboarding, and Bootstrap for layout structure.

Tools & Libraries 1
Homepage & Discovery
GSAP scroll-driven storytelling · async leaderboard · featured user patterns

The homepage is built around four scroll-driven panels: a hero introducing the brand, a 'Create Your Own' CTA into the generators, an 'Explore' CTA into the gallery, and a featured grid of the top user-generated patterns. The rotating motif tracks the scroll position with GSAP, and the leaderboard plus pattern grid load asynchronously via AJAX so the page is interactive immediately.

Homepage & Discovery 1
Homepage & Discovery 2
Homepage & Discovery 3
Homepage & Discovery 4
Animated Pattern View
SVG step-by-step · sticky nav · request-edit hook

The Pattern View is the platform's clearest teaching moment: each legacy pattern is broken into an animated SVG tutorial that draws layer by layer. A sticky side navigation keeps the steps reachable, and a Request Edit button funnels engaged users into registration — converting browsing into contribution.

Animated Pattern View 1
Pattern Generator
Hankin’s algorithm · shape management · animation · export

The generator implements Hankin's algorithm — a geometric construction method for Islamic patterns — and wraps it in a designer-friendly UI. Users can add random shapes, lock minimum and maximum sizes, manage text overlays, randomise colours, tile across the canvas, and either export a static image or record an animated reveal. A Driver.js-driven onboarding tour walks first-time users through every control before letting them exit.

Pattern Generator 1
Pattern Generator 2
Rosette Generator
P5.js · live geometry · save to gallery

A parallel P5.js sketch generates classical rosette patterns — the user controls petal count, construction-line visibility, opacity, stroke width, pattern colour, and intersection fill, all updating in real time on the canvas. Designs can be saved back into the user's profile and submitted to the moderated gallery.

Rosette Generator 1
User System & Profile
Hashed auth · onboarded profile · contribution history

Registered users get a profile with three tabs — Profile, Edit History, and Pending Uploads — so contributors can track what they've submitted and where it sits in moderation. The first profile visit triggers a Driver.js onboarding sequence; the help (?) button replays it without affecting state. Passwords are hashed before they touch the database; emails are stored only for password reset.

User System & Profile 1
User System & Profile 2
User System & Profile 3
Admin Moderation
Pending edits · unapproved patterns · contribution points

The admin dashboard is the operational backbone — pending edit requests on existing patterns, unapproved user-submitted patterns, and the link to award contribution points on approval. Approve and reject both fire async success / failure messaging; rejected edit requests are deleted, approvals push points to the contributor's profile.

Admin Moderation 1
Result
What it
delivered.
A live, public, production-quality platform — gallery, generators, contributor system, admin pipeline, and brand all working together. Exhibited as part of the MSc thesis at the University of Edinburgh.
View Live Project ↗