Meet the new thinkbot

Today, I’m proud to announce a brand new website for thinkbot, the compute service underlying Mechanics Academy. This new website tries to better motivate the features offered by the service, documents how to use it and tries to gather support for its further development.

The new thinkbot home page

Do check it out, and please spread the word to those who might be interested!

September 15, 2013 — Permalink


Generalizing output graphics

Those who have tried to play with the thinkbot-powered simulation demo would have soon realised one of its fundamental limitations: it assumes that the output quantity is a deformation-like vector field in 3D for the purposes of visualization. To overcome this limitation, I’ve started to spec out some generalizations to thinkbot and Mechanics Academy’s visualisation framework to allow for a wider range of output quantities.

When implemented, you should be able to plot meshes, scalar and vector fields (both as arrow glyphs and as warped meshes) in 2- and 3-dimensions. To help you imagine these (and to remind me of the different cases!), I’ve provided some examples below from different FEniCS demos that motivate this upgrade:

In 2D

2d-mesh

Computational mesh

2d-scalar

Scalar field, as a color map

2d-scalar-height

Scalar field, as colors and z-height

2d-vector-arrows

Vector field, as arrow glyphs

In 3D

3d-mesh

Computational mesh

3d-scalar

Scalar field, as a color map

3d-vector-arrows

Vector field, as arrow glyphs

3d-vector-deformation

Vector field, as mesh distortion

Stay tuned for an updated demo showing off some of this new stuff soon!

July 20, 2013 — Permalink


From alpha to beta

Today, I’m proud to announce that Mechanics Academy has grown up from being a simple HTML prototype to a full-fledged web application. The site now serves as a fairly sophisticated content management system that allows me (and anyone interested!) to catalogue original learning material alongside existing Open Educational Resources of high quality. Internally, all this material is stored with a fairly rich collection of metadata, and I’m experimenting with ways of presenting the content so that it’s most useful for students.

For now, all the content on the site is broadly classified across a handful of subjects,

A couple of example subjects

and within each subject, the material is arranged in a manner so as to first provide students with material that motivates them to learn, followed by more comprehensive resources for deeper dives.

Some of the content types

A big part of the catalogue—the raison d’ĂȘtre of Mechanics Academy as it were—revolves around simulation-based demonstrations and exercises. The technology for this is humming along quite nicely, and I finally have a demo to share that might be very interesting for the scientific computing nerds in the audience.

Connecting to thinkbot via AJAX

Do try it out and let me know what you think!

With all this new infrastructure in place, I am now turning my focus to two big tasks. One, to actually start filling out the library with interesting material that’s already out there on the web. (I would love for your help if you can spare the time.) And secondly, I’ve figured out some recording technology that I am happy with, and I’m in the process of planning and recording lectures as well as dreaming up programming exercises for my first complete course.

Stay tuned for all this and more!

June 10, 2013 — Permalink


Scientific computing as a service

After a week of hard work, I’ve separated one of the core aspects of Mechanics Academy—its compute server—into a separate service with a clean, RESTful API. This service is called thinkbot, which I think is a pretty cute name!

I believe this was an important step to take, as thinkbot can now act as an easy-to-use scientific computing service that can meet general needs, well beyond those of Mechanics Academy. But much more on all that later.

With thinkbot, one can now do the following:

  1. Submit a job (in Python; R and Octave support planned for the future):

    curl -X POST http://api.thinkbot.net/jobs/ -F"code=<some_file.py" [other metadata] -u username[:password]

  2. Retrieve info about the job's status:

    curl -X GET http://api.thinkbot.net/jobs/3/

  3. Retrieve results based on what was requested in the metadata along with the submitted code.

    curl -X GET http://api.thinkbot.net/results/3/u.vtk

Mechanics Academy communicates with thinkbot via AJAX, and can send it scientific computing jobs and retrieve results. Check it out:

thinkbot api demo

More documentation, logins and actual science lessons using all this technology coming soon™.

March 28, 2013 — Permalink


Tossing rocks

I spent a couple of hours this afternoon talking to the fine folks Studix, a young company working on some interesting technology for recording, contextualising and presenting educational material in quantitative fields. In particular, we discussed ideas to incorporate Mechanics Academy’s simulation-based approach to science education with their HTML5/JS-based recording system.

This conversation prompted me to create something I’ve been meaning to for some time: a mechanics demo aimed at high school kids. So without further ado, I present to you a simple projectile motion demo:

A projectile motion demo

So, how far can you toss the rock?

February 26, 2013 — Permalink


Rapid frontend prototyping with Middleman and Bootstrap

I feel like I’m making quick progress designing the front-end of this iteration of Mechanics Academy. Today, I worked out a simple-yet-slick interface for signing up and logging into the site, as well as a dashboard showing relevant information to students once they’ve logged in:

A student dashboard

The tools that are making this process as easy as pie are the powerful Bootstrap framework and Middleman, a modern static website generator. If you’re interested in exploring a new way to create your next prototype, I can heartily suggest this powerful duo.

February 24, 2013 — Permalink


A fresh start

Much has happened since I first started working on Mechanics Academy all those months ago. No longer just an abstract vision in my head, the project now has clearly defined goals which I am using to drive its design and development.

And that’s where this new prototype—the site you’re now on—comes in. Exercising all that I’ve picked up recently from courses on modern web development and user experience design, I’m starting to systematically build a sophisticated web app that will:

  • Deliver a selection of scientific computing software as a service, and
  • Be used by folk to engage and teach students concepts in computational science.

I will be posting details of my progress on this blog. Both to let you know what is going on—and to keep me honest.

February 23, 2013 — Permalink


Interactive exercises

After finally working through a round of grant applications and talks, I’ve had a couple of days to really sit down and work on ideas for Mechanics Academy. Here is a look at how the interactive demo functionality (which will be the basis for exercises) is shaping up.

Visual design
Software architecture

All that I’ve picked up from the Software as a Service and Computer Graphics classes from BerkeleyX are being put to good use!

November 29, 2012 — Permalink


Practical complexity and theoretical insight

Cardiovascular Solid Mechanics

I was really looking forward to the winter vacation. I hoped that the time off from actual work would allow me to focus in earnest on this web site. And so, I excitedly packed some of my books and notes alongside my swimming trunks for my recent Asian vacation. Sadly, it soon dawned on me that it’s near impossible to spend time with family and gallivant across Asia—all while simultaneously getting work done.

But this time away has been good for me. It is through meeting people and evangelising my efforts here that has crystallised in my mind the direction I want to take this project. Diverting from my initial plans, I am not going to concentrate on relatively basic subject matter that has broad appeal to university-level mechanics students. (A casual search will show that there are several resources of high quality for such topics around the web.) Instead, I now believe that I can make a more valuable contribution by educating interested students on advanced topics close to my area of expertise: computational biomechanics. And so, I have outlined such a course, identified something approximating a text book, and I’m in the process of preparing detailed notes for the individual lectures.

A basic theme of the course is best captured by the following TED talk on mathematics education by Conrad Wolfram. By offloading much of the tedium of classical mechanics formulation and calculation to the computer, we free our minds both to gain deeper theoretical insight and build the capacity to address the complexities of biomechanics problems of practical importance.

September 23, 2012 — Permalink


The genesis of Mechanics Academy

Toying with different domain ideas

I love to teach. I greatly enjoy making websites. I don’t know why it took me so long to connect these dots, but from that recent connection was born Mechanics Academy.

Mechanics Academy is a website for disseminating university-level lectures on topics I care about. These primarily include continuum mechanics theory, its application to mathematical biology and the numerical methods involved in solving the equations arising from the theory. The effort is greatly inspired by how much I’ve learnt from other virtual learning projects around the web. Prominent examples of these are Khan Academy, MIT’s OpenCourseWare and Stanford’s iPhone Application Development, Artificial Intelligence and Machine Learning classes. Each of these projects serve their respective niches very well, and Mechanics Academy hopes to be a similarly valuable resource for university students aiming to learn mechanics.

From the instant the idea popped into my head about ten days ago, I have spent nearly every moment of my spare time working on it. My early efforts have focussed entirely on getting the site up and running. After spending a few hours toying with different potential domain names, I started to think about what kind of content the site should house and how it should be organised.

Classifying the content on the site

Graph of the site content

In a couple of days, I was happy with the basic structure of the content and started to delve deeper into implementational aspects. This has been the focus of my efforts this past week. In that time, I’ve gone from a few simple sketches of how I’d like the site to look and behave to a reasonably-working implementation in WordPress using custom post-types and taxonomies to store the lectures. On that note, the source code that powers this site is available, in case you are interested in downloading it for your own needs or contributing to this project. Please let me know if you are interested.

Visual layout of a lecture

First attempts at a site logo

Now that the basic site functionality is in place, I’m starting to focus my attention on generating content. Along with video lectures, the site also aims to contain related lecture notes, practice exercises and avenues to get additional help. More updates on all of this soon, after I’ve given myself some time to plan the lectures for the first course on continuum mechanics.

For now, I’d like to thank you for your interest in this project and welcome you to it. I hope you find your stay pleasant, and that you have fun learning!

July 16, 2012 — Permalink

About

Mechanics Academy aims to be a stimulating and fun environment where students learn topics in mechanics and applied mathematics.

Learn more…


Recent entries


Topics