Inkface + Clutter
Clutter is the easiest way to start coding GUIs with accelerated graphics. I liked it when I first saw the demo in March last year. So all the time while working on inkface, I was waiting for some free time to use inkface with clutter. After getting Inkface v0.1.2 out, I tried my pyclutter… pretty soon figured out a simple way to combine the two.
Check out the following 12 minute video. I put together a simple program in few hours and the video documents all the steps I needed to do. It demonstrates a slider widgets which controls the rotation of a steering wheel.
The program is 169 lines of python code in a single file (including comments and some boilerplate code). It loads the GUI from two svg files (slider, steering). As you can see the slider is unlike any GTK or Qt widget and it was put together in less than 10 minutes in Inkscape (the video is real-time).
[You can skip through the video from 1:00 to 9:40, if you don’t want to see all the details of drawing in Inkscape]
Now animated “clutter” GUIs can be designed with smooth curvy shapes and smart color palettes, which are difficult to program, but easy to compose in an image editor. Libraries like clutter are making it possible to design out of rectangular widgets. A library like inkface makes it possible to design those new widgets in an image editor.
Archive
2019
Dimensions of Idea communication
2018
Lessons for Game designers from "Structure of Scientific Revolutions"
Playing games, Doing Mathematics
Why gamers like pixelated games
2017
Collecting Vs Hoarding Netflix
Game Design tip for Programmers - Less Automation
Review Ghost In The Shell - The blinds scene
Why Electron is the best development platform?
2016
2015
Before fixing performance issues
2014
2013
Software Engineering Code of Ethics and Professional Practice
2012
Coffeescript: To switch or not to switch
The single most reason that keeps me using Vim
When your git branch diverges from your remote
Something like Olivia - John Mayer
Online courses - New technology, Old rules
Why Patriotism doesn't make sense
Why sea steading is important to pursue?
Rolling back latest git commit
iTunes Download stopped (err =9006)
Good essay on user centric software design
Why we need to explore Seasteading?
2011
How to write interactive CLI utility in node.js
The Gods Themselves by Isaac Asimov
How to print stack trace anywhere in Javascript
It's not fair to compare Android with Internet Explorer
How to debug WebWorker threads?
Why can't I criticize Government if I don't vote? I sure can.
Why the hi-tech minds are writing Social apps?
Ever growing todo list is a good sign for creative projects
Lesser women in tech... So what?
HTML5 offline cache - use swapCache carefully
How Wikipedia and Flattr can together change the World
2010
Functional programming in Javascipt using Underscore.js
Youtube ETA - Chrome extension
Why secure airports when it's planes that fly?
Mac book red light audio jack problem on Linux
How to save HTML5 canvas image to Google App Engine
Why don't they publish eBooks for free but with embedded ads?
Reality distortion field around
ReaderScope 2.0.6 - Find Comments
Why "Open" is not the first concern of user?
Mutt, Gmail, gdata, notify-send: A Perfect Email solution
Are you the Matt Damon of your game?
ReaderScope 1.8.{2,3} - new authentication and global share
Portable apps for iPhone, Android, Pre, n900 - Can Processing.js help?
ReaderScope 1.8.1 - rethinking features
Android fragmentation : How big a deal is it?
ReaderScope v1.7 - Widget, new Icons and .... Ads
on Git: tips for SVN users and Git in Dropbox cloud
How to do an online IDE for Android app development
Make Android speak your Twits with "TwitSpeak"
2009
ReaderScope 1.5 - quicker, better, prettier
Preview android.R.drawable.* images
Is definition of "Evil" changing?
ReaderScope 1.4 (with a Theme Pack)
The AND-OR problem of laptop and mobile phone
ReaderScope v1.3.3 - offline podcasts
ReaderScope v1.3.2 - Social Channels
ReaderScope v1.3 - Beyond Google Reader
Frets on Fire for Maemo - Update
ReaderScope 1.2.7 - Podcasts, Expanded View
Sprint HTC Hero problems with ReaderScope
ReaderScope 1.2.1 - Auto Login
ReaderScope 1.1.3 - SDCard storage
ReaderScope 1.1.1 quick-n-easy features
ReaderScope 1.1 - Social Beacons
ReaderScope 1.0.2 - making deep cache simple
ReaderScope beta4 - offline fun
ReaderScope beta3 - Tweet the news
Intercepting Up/Down keys from bash script
Makeshift XML beautifier in python
HTC Magic (Indian version) - expectations and facts
Android development with Vim + Eclim
FoF - PyOpenGL = miniFoF (possibly for n810)
Twitter client with inkface-pygame v0.2.2
Frets on Fire on Maemo 5 (Fremantle)
Static IP configuration on Fedora 10
Smooth scrolling with Inkface+pygame
Inkface v0.2 update and automated GUI testing
Testing Android (Koolu Beta 3) on Openmoko Freerunner
Clutter animation paths with Inkscape+Inkface (v0.1.3)
Debian repository on Google App Engine
Inkface v0.1.2, Twitter-inkface client
2008
Debugging python reference counts
(k)ubuntu 8.10 - not ready for my home yet
Migrating to Google App Engine
Android opened - first looks inside
Inkface - SVG based GUI design
Today's slashdot and open source
OpenMoko, Android and a great hacking post
2007
XML RPC server inside apache mod_python
Nice review article on virtualization technologies
Once again... a quote from 'Troy'
Sea surfing under the Golden Gate
2006
How do I backup to Amazon S3 storage service
Gas prices... seems like big scam
If Harry Potter were a computer hacker ...
2005
repeat (ps | grep) = filtered top
Halo fixed on ATI Mobility Radeon 9000
Warning: const is a keyword in ANSI C
2004