Thaana Type

Research & development of Thaana fonts
,

  _     _                                     
 | |   | |                                    
 | |_  | |__     __ _    __ _   _ __     __ _ 
 | __| | '_ \   / _` |  / _` | | '_ \   / _` |
 | |_  | | | | | (_| | | (_| | | | | | | (_| |
  \__| |_| |_|  \__,_|  \__,_| |_| |_|  \__,_|
                                              
                                              
  _                          
 | |                         
 | |_   _   _   _ __     ___ 
 | __| | | | | | '_ \   / _ \
 | |_  | |_| | | |_) | |  __/
  \__|  \__, | | .__/   \___|
         __/ | | |           
        |___/  |_|           
PhotoPie

Web app for colour data visualisations of photos
,

var img = new Image()
  img.onload = function () {
    var canvas = document.createElement('canvas')
    canvas.width = width
    canvas.height = width * (img.height / img.width)
    var ctx = canvas.getContext('2d')
    ctx.drawImage(img, 0, 0, width, canvas.height)
    var id = ctx.getImageData(0, 0, canvas.width, canvas.height)
#mvelection2013

2013 Maldives presidential election results analytics
, ,

function r(id, label, mdp, ppm, jp, gi, invalid, nonvoters, max) {
  var total = mdp+ppm+jp+gi+invalid+nonvoters+max;
  var canvas = document.createElement('canvas');
  var chartwidth = 2100;
  var chartheight = 50;
  var top = 2;
  if (max < 10000 && max != 0) {
    canvas.width = 2100; 
  } else {
    chartwidth = 800;
    canvas.width = chartwidth ;   
  }
mvmurders

Mapping & documenting murders that have taken place in the Maldives
, ,

                                                     _                     
                                                    | |                    
  _ __ ___   __   __  _ __ ___    _   _   _ __    __| |   ___   _ __   ___ 
 | '_ ` _ \  \ \ / / | '_ ` _ \  | | | | | '__|  / _` |  / _ \ | '__| / __|
 | | | | | |  \ V /  | | | | | | | |_| | | |    | (_| | |  __/ | |    \__ \
 |_| |_| |_|   \_/   |_| |_| |_|  \__,_| |_|     \__,_|  \___| |_|    |___/
                                                                           
                                                                           
Lets Go Maldives rebranding

Complete rebranding of the travel agency
,

  _          _                           
 | |        | |                          
 | |   ___  | |_   ___      __ _    ___  
 | |  / _ \ | __| / __|    / _` |  / _ \ 
 | | |  __/ | |_  \__ \   | (_| | | (_) |
 |_|  \___|  \__| |___/    \__, |  \___/ 
                            __/ |        
                           |___/         
                      _       _   _                      
                     | |     | | (_)                     
  _ __ ___     __ _  | |   __| |  _  __   __   ___   ___ 
 | '_ ` _ \   / _` | | |  / _` | | | \ \ / /  / _ \ / __|
 | | | | | | | (_| | | | | (_| | | |  \ V /  |  __/ \__ \
 |_| |_| |_|  \__,_| |_|  \__,_| |_|   \_/    \___| |___/
                                                         
                                                         
Azidon – brand development

Development of brand identity & marketing materials
,

                _       _                 
               (_)     | |                
   __ _   ____  _    __| |   ___    _ __  
  / _` | |_  / | |  / _` |  / _ \  | '_ \ 
 | (_| |  / /  | | | (_| | | (_) | | | | |
  \__,_| /___| |_|  \__,_|  \___/  |_| |_|
                                          
                                          
  _                                  _ 
 | |                                | |
 | |__    _ __    __ _   _ __     __| |
 | '_ \  | '__|  / _` | | '_ \   / _` |
 | |_) | | |    | (_| | | | | | | (_| |
 |_.__/  |_|     \__,_| |_| |_|  \__,_|
                                       
                                       
Framing Leaders

Algorithmically generated framed pictures of heads of governments
, , ,

#!/usr/bin/python
#
import datetime
for row in cursor.fetchall():
  if row['country_code'] + ".png" in srcfiles:
    x = datetime.datetime.now().date() - row['h_gov_since']
    if x.days > 365*2:
      years = " ("+ str(math.floor(x.days/365))[:-2] + " years)"
    elif x.days < 365:
      years = " ("+ str(x.days) + " days)"
      
    else:
      years = " ("+ str(math.floor(x.days/365))[:-2] + " year)" 
    img = row['country_code'] + ".png"
    imgs.append(img)
    li[img] = row['country_name'].capitalize() + years
    height.append(Image.open(pathx + img).size[1]+35)
    width.append(Image.open(pathx + img).size[0]+20)
Flags By Colours

Data visualization experiment using flags of the world
, , , ,

#!/usr/bin/python
#
from sys import argv
import Image, ImageDraw 
im = Image.open(argv[1]) 
im = im.convert('RGB') 
colors = {}; total = 0
for y in range(im.size[1]):
  for x in range(im.size[0]):
    color = im.getpixel((x,y))
    if color in colors.keys():
      colors[color] += 1
    else:
      colors[color] = 1
    total += 1 
mvblogosphere

Mapping of the Maldivian blogosphere (2006-2014)
, ,

                      _       _                                         _     
                     | |     | |                                       | |    
  _ __ ___   __   __ | |__   | |   ___     __ _    ___    ___   _ __   | |__  
 | '_ ` _ \  \ \ / / | '_ \  | |  / _ \   / _` |  / _ \  / __| | '_ \  | '_ \ 
 | | | | | |  \ V /  | |_) | | | | (_) | | (_| | | (_) | \__ \ | |_) | | | | |
 |_| |_| |_|   \_/   |_.__/  |_|  \___/   \__, |  \___/  |___/ | .__/  |_| |_|
                                           __/ |               | |            
                                          |___/                |_|            
                     
                     
   ___   _ __    ___ 
  / _ \ | '__|  / _ \
 |  __/ | |    |  __/
  \___| |_|     \___|
                     
                     
Drawing With Light

Mapping photography & its links to social, political & aesthetic systems

      _                             _                 
     | |                           (_)                
   __| |  _ __    __ _  __      __  _   _ __     __ _ 
  / _` | | '__|  / _` | \ \ /\ / / | | | '_ \   / _` |
 | (_| | | |    | (_| |  \ V  V /  | | | | | | | (_| |
  \__,_| |_|     \__,_|   \_/\_/   |_| |_| |_|  \__, |
                                                 __/ |
                                                |___/ 
             _   _     _         _   _           _       _   
            (_) | |   | |       | | (_)         | |     | |  
 __      __  _  | |_  | |__     | |  _    __ _  | |__   | |_ 
 \ \ /\ / / | | | __| | '_ \    | | | |  / _` | | '_ \  | __|
  \ V  V /  | | | |_  | | | |   | | | | | (_| | | | | | | |_ 
   \_/\_/   |_|  \__| |_| |_|   |_| |_|  \__, | |_| |_|  \__|
                                          __/ |              
                                         |___/