Frameshift: Shift Your Attention, Shift the Story

Frameshift: Shift Your Attention, Shift the Story

Attention is a limited resource that intrinsically dictates our perceptions, memories, and behaviors. Our aim is to use attentional measures to enrich graphic novel narratives. FrameShift uses eye tracking to measure reader attention and changes text and visual elements later on in the story accordingly. We have built an extensible framework for using attention to introduce perceptual changes in narratives. We use attention as an indirect method for interactions and introduce shiftable frame nodes that change readers’ belief states over time. 

1 Hour Collaborative Intro to Webdev

1 Hour Collaborative Intro to Webdev

At the start of every term, we try to get new students who are working at the DALI Lab onboarded. There's a lot to learn: the DALI Lab project process, design skills, development skills, team skills, and how to collaborate properly using git, slack, etc. 

Usually we have a new member orientation which consists of an overview of the lab process and a team building hacktivity (which I'll write about later). However, last term in addition to the orientation we also introduced specific workshops to help with this onboarding. 

The goal for this specific workshop was to get both designers and developers up to speed with coding collaboratively. CS classes at Dartmouth by and large don't teach any git flow or much about code version control, so I had to think about how to go through a lot of material quickly, yet enable everyone to feel comfortable with working together on some basic coding.

Protein Search and Visualization in PyMol weekend project

Protein Search and Visualization in PyMol weekend project

"Finding backbone substructures that match an arbitrary query structural motif, composed of multiple disjoint segments, is a problem of growing relevance in structure prediction and protein design" -- Gevorg Grigoryan.

Gevorg's lab built a tool called Method of Accelerated Search for Tertiary Ensemble Representatives MASTER, which is essentially a partial distance search engine for the Protein Data Bank.

I took on building a PyMol module and a server API component as a weekend project to allow his lab at first but then others to be able to use his _MASTER_ search database for building proteins. 

Foldlings — A Sketch-Based Interface for Intuitive PopUp Card Design

Foldlings — A Sketch-Based Interface for Intuitive PopUp Card Design

Crafting 3D paper pop-ups can yield complex, expressive geometries, and can help develop spatial reasoning skills. However, designing the cuts and folds is often a frustrating process due to the strict geometric constraints. Foldlings is a tool that assists in this exploratory process, allowing a user to draw lines and be guided in creating well-defined pop-ups. We simulate the pop-up in 3D, allowing users to quickly preview their design before printing or laser cutting. We created an iOS app written in Swift, and performed informal user tests with 23 undergraduate students. 

Early Warning Project

Early Warning Project

This is a Rails + Backbone app that was designed and built at the DALI Lab for the United States Holocaust Memorial Museum in 2013. The site is driven by statistical models developed by the Dartmouth Department of Government and the Center for the Prevention of Genocide. The models attempt to predict the risk of atrocities over time and place; our site aims to communicate this data to a large audience.

chessInvaders update

chessInvaders update

It has been a month since ChessInvaders was published in the App Store! It has "sold" (for free) more than 6k copies, and has been engaged with (played through at least one level) almost 15k times. The download rate has slowed to about 10 a day, but about double that are playing every day! I'm pretty happy with that given that it's a pretty hard and definitely beta quality game experience. 

Wrapping Unity C# Coroutines for Exception Handling, Value Retrieval, and Locking

Wrapping Unity C# Coroutines for Exception Handling, Value Retrieval, and Locking

Coroutines are awesome.  If you aren't familiar with them (particularly in the context of Unity3d) then you should be.  In short, coroutines are methods that can suspend and resume execution.  In the context of Unity what this means is that you can have methods that appear to run concurrently.  Coroutines are **the** way to script a lot of things in Unity, however there are a few problems that you may run into if you use them heavily: exception handling, return values, and locking. Especially if you use nested coroutines!  Here are some ways to extend coroutines to fix some of these issues. 

Generic Singleton MonoBehavior Part 2:  Singleton Self-Loading Prefab

Generic Singleton MonoBehavior Part 2: Singleton Self-Loading Prefab

I had a previous post about singletons in Unity3D and have since added a useful functionality to that class.  One of the useful features of a singleton is that it is self instantiating.  But what if you want to use the Unity editor to expose some public variables and have some other assets hooked into your singleton?  So since you are probably using prefabs to manage game components in your scenes anyway, seems like it might be useful to have a self-loading prefab for components such as the player or a gui controller. 

Generic Singleton MonoBehavior Class

Generic Singleton MonoBehavior Class

In Unity3D having a singleton class is very useful, whether for "global" state or simply for the convenience of having a static accessor so you don't have to have lots of: <code>FindObjectOfType(typeof(Builder)) as Builder;</code>

So you code up a C# singleton and then realize that you actually need it to be a MonoBehavior, not just a ScriptableObject -- say you want the singleton to run coroutines, or have a transform, or any other MonoBehavior feature.  But monobehaviors can't be initialized with a constructor. So what you want is a monobehavior pseudo singleton pattern.

Wood Carving

Wood Carving

I used to do a lot of wood carving, chip carving in particular. This is a style of woodcarving found in traditional folk art around the world.  Geometric patterns composed of 2, 3, or 4 sided pyramid shaped chips are carved out of the surface, usually with a single knife.  Each chip comes out as a single piece. It can be used to decorate large building surfaces as well as more intricate pieces such as boxes or art frames. 

udunit

udunit

Based on Foursquare's engineering blog (which has lots of good technical information about how they do things) we decided to give Lift a try and learn Scala along the way!  Did we like it?  Yes and no...

chessInvaders

chessInvaders

The current project I am working on is an iPad game that teaches basic rules of chess in a fast paced not-quite-chess environment. The game is a small, but fun combination of space invaders and chess. It teaches and drills the basic movement rules while remaining engaging.

3D Mesh Sculpting using the Kinect

3D Mesh Sculpting using the Kinect

I had wanted to play/hack a Kinect so I completed an independent study project researching motion detection techniques, physics reconstruction, and geometry sculpting. I implemented a program to sculpt some 3D geometry with your hands using the Kinect.

The Neural Mechanisms and Purposes of Randomness in Consciousness

The Neural Mechanisms and Purposes of Randomness in Consciousness

Do you believe in free will or determinism?   Either way,  imagine you are creating a life form, and that you want it to have free will.  You figure out that you need to design an organ that would be responsible for this.  You decide to call it the "free willer".

What would this organ do?

ENGS21: Gunkless Drain

ENGS21: Gunkless Drain

For ENGS21 we build a small device that would retrofit in your shower drain and was foot powered to help clear clogged drains.

Why The DLPFC is The Coolest Part of The Brain

Why The DLPFC is The Coolest Part of The Brain

Want to learn about why the dorsolateral prefrontal cortex is the coolest part of the brain?  With the onset of modern neuroscience a common question often discussed is: where in the brain are self-regulation, executive control, free will, volition, selection, short-term memory, attention, planning, and overall consciousness located and by what neurological processes do they occur.

Flow, Education, and Ritalin: The Missing Link Between Addiction And Learning

Flow, Education, and Ritalin: The Missing Link Between Addiction And Learning

My eyes are glued to the screen. They rarely blink. They become irritated but I do not notice. I am in the zone. The force is with me. I feel it flow through me. I am coding. Even though the coding paradigm may not apply to everyone, we all know that feeling of hyper-attention. When an activity is so engrossing that the rest of the world fades away, we are left mano-a-mano, tête-à-tête, our ego and the task battling together for mutual gain.

A Moment in the Life of Camus' Sisyphus

A Moment in the Life of Camus' Sisyphus

I watch my cursed boulder tumble down my mountain. I heave a sigh of relief; my aching muscles allowed a brief respite. As I stand on its majestic craggy peak, I survey my mountain beneath me. My boulder is now far out of sight, but I can feel it down below in the darkness waiting for me.

Fear, Happiness

Fear, Happiness

What is the mind when it is happy and when it is unhappy? Most likely the answer is different for each person, but to understand it for myself I first need to discern when it is that I am happy.