Nick Hodges- Gorilla
In this talk, Nick will give an introÂducÂtion to GorilÂla’s new genÂerÂaÂtion of tools, Task Builder 2. He’ll talk about how it works, what promptÂed the GorilÂla team to develÂop it, and some examÂples of the tasks you can create.
Full TranÂscript:
Jo EverÂshed 0:00
which is Nick Hodges from gorilÂla who’s going to share how some of the new feaÂtures that are availÂable in Task Builder 2, the new, new offerÂing from GorilÂla. And then after that talk, we’re going to have a break. So stick around to disÂcovÂer how the researchers Neil, Saloni, and Myles have creÂatÂed their studÂies, and how in the future, it’s going to be even easÂiÂer to creÂate these studÂies and deploy them online. Saloni, Neil, miles, thank you, you’ve all been absoluteÂly brilÂliant. Do stick around.
Nick Hodges 0:29
Oh, thank you, right. Let me just show this. Right. Can you see my slides? And hear me? Cool. WonÂderÂful, thank you. So six years ago, a researcher, probÂaÂbly just like many of you watchÂing, had been tryÂing for months to get her stairÂcasÂing tasks to work. And as you can see here, quite clearÂly got to the end of her tethÂer. I’m sure many of you have felt like this at times. Six years latÂer, come on slides. Fast forÂward six years latÂer. And she’s built the same task in gorilÂla in around two hours. And Jade is now a colÂleague of ours here at GorilÂla. And it was at this point where she manÂaged to put the task togethÂer so quickÂly that we knew we were onto someÂthing with our designs.
So helÂlo, everyÂone. Good mornÂing, I’m Nick. And I’m going to show you the next genÂerÂaÂtion of our tools, task buider 2. Now, our vision here at GorilÂla is to give you a sinÂgle platÂform with a comÂmon visuÂal lanÂguage for quesÂtionÂnaires for tasks for human comÂputÂer interÂacÂtion games, mulÂtiÂplayÂer, shops, and so on. And the big idea that we’re sort of runÂning with at the moment is that everyÂthing is niceÂly inteÂgratÂed. And everyÂthing is, is self aware of all the difÂferÂent comÂpoÂnents that it’s workÂing with.
Now, that all sounds very high levÂel, but funÂdaÂmenÂtalÂly, I want to turn you from this poor perÂson on the right to this much more, c’mon, relaxed perÂson on the left, that’s what we’re shootÂing for. So the first thing with task builder 2 that we realÂly want to do is just make it that much faster and easÂiÂer to iterÂate on your task and add in difÂferÂent ideas. So picÂture this sceÂnario where it doesÂn’t matÂter whether you’re a PhD stuÂdent or a postÂdoc, you’re a PI. I’m sure you’re all familÂiar with this sceÂnario. So you’re buildÂing imagÂine you’re buildÂing a task. It’s a simÂple litÂtle puzÂzle, I’m sure some of you have seen this examÂple before. It’s a litÂtle three by three grid with a missÂing picÂture in the botÂtom right. And you’ve got to say which one the right one is. So you’ve got some instrucÂtions, and then we go through some triÂals. So I think that one’s probÂaÂbly the cat. Not quite sure, let’s have a look. Let’s go for the lamp perÂhaps. And this one could be the burger.
So you build instrucÂtions, you put some triÂals togethÂer, and then you go to your go to review it with your colÂleagues, whether that’s your PR, your superÂviÂsor, your review board, and someÂone will probÂaÂbly say oh, we should probÂaÂbly do some pracÂtice triÂals, which tells you whether you’re corÂrect or not. So we can see whether peoÂple are getÂting it. Great. So that’s nice and simÂple, we could do that. Let’s go ahead and just add that straight in. So we’re going to add an object in here, we’ll grab the feedÂback, we’ll put it straight in, move it around a bit, done.
We can actuÂalÂly preÂview our triÂal straight in here. So we can see if this is workÂing. So if we click on the cat that’s on to the right answer, and we can see that that’s corÂrect in the stream down the right. And the snail is comÂing through, I think CorÂrect. Great. So when you go back, and you chose to go put in the feedÂback now and say, Oh, this is realÂly cool. But I think we should add a screen after the pracÂtice triÂals, sothey can do them again if they want. Okay, let’s do that. So here is the spreadÂsheet that’s driÂving that task. So you’ve got instrucÂtions, you’ve got the free pracÂtice triÂals. And I’ve introÂduced a litÂtle pracÂtice comÂplete screen at the end. So here it is, is just a simÂple bit of text with a yes, no. And all I’m going to add in here is abilÂiÂty to just jump to a difÂferÂent row of the spreadÂsheet. So at the end, we say, well, if they respond to they respond, Yes, then we want to jump back to the row where our pracÂtice chart starts, which is still in our spreadsheet.
So if we go ahead and look at that, we can see this hapÂpenÂing. So there we go. Here’s our instrucÂtion stream. Again, we go through our pracÂtice triÂals, we can see the feedÂback is comÂing through now. And then oh, we made a bit of a hash of this that so yes, let’s do this again. Yes. So we go back, we do them again. Oh, I see. There we go. And there’s a chanÂdeÂlier. And this one must be that one is the red burgÂer. Okay, great. And then we say no, don’t do that again. And then it goes on through the main trials.
You go back to your superÂviÂsor say, oh, that’s realÂly good. But actuÂalÂly thinkÂing about this. Let’s not give them a choice. If they get if they get anyÂthing wrong, they just have to do it again. So again, we’ve made this nice easy to do we want to save, first we need to do is make sure we keep track of any misÂtakes. So we’re going to add this save accuÂraÂcy comÂpoÂnent in here and say, we’re going to store the numÂber of incorÂrect responsÂes in a field called misÂtakes. And then all we can do here is change our criÂteÂria. So instead of it being when they say yes, we’re going to say well, whenÂevÂer that misÂtakes field
4:44
hits a cerÂtain criÂteÂria, so whenÂevÂer that misÂtakes field is greater than zero, then we’ll jump back now, and I don’t know about you like I can’t afford to spend my time doing this in code for every task doing this in the UI like this is so much faster and quickÂer. And I think the key point for me is that these are thing these aren’t these are key imporÂtant sciÂenÂtifÂic deciÂsions that you want to be able to make about your parÂticÂiÂpants expeÂriÂence. You don’t want impleÂmentÂing them to be burÂdenÂsome, you want them to be quick and easy. You just want to just turn it on and away you go.
Now we’re going to hear more, I think latÂer today about improvÂing the expeÂriÂence of your parÂticÂiÂpants and how that gets you much betÂter qualÂiÂty data. But the key thing for me is it just needs to be realÂly easy to add all these things in. I was quite inspired watchÂing Myles talk just now parÂticÂuÂlarÂly well, all of it. But cerÂtainÂly the bits goes down where he’s sayÂing, well, now that we found these findÂings, he wants to try all this othÂer stuff with the synÂchroÂnisÂing with the balÂleÂriÂna with all these othÂer kinds of things. This is the kind of thing I’m talkÂing about where you can have ideas and get them into this thing realÂly nice and quickly.
So that’s a, that’s an examÂple of how how we have reimagÂined your workÂflow in our in our new toolÂing. I want to show you some of the ideas I’ve showed you in more detail and how they actuÂalÂly interÂopÂerÂate. So the first one is live preÂview. And the first point to make is that that preÂview panÂel in the cenÂtre with the four response options, and the bit in the in the top, that is the actuÂal live task engine runÂning for there in real time right there in the toolÂing. So when you’re movÂing stuff around, so you can obviÂousÂly you can lay stuff out visuÂalÂly, you can, you can see exactÂly what the perÂson is going to see in that winÂdow. EveryÂthing is reacÂtive and visuÂal. So you can drag things around, you can resize them, we’ve got a grid to help you lay stuff out niceÂly, you can change the scale of that grid, if you want a bit more fine grained conÂtrol. If you want to be realÂly, realÂly exact, you can just turn the grid off comÂpleteÂly. And it will switch to a comÂpleteÂly pixÂel based coorÂdiÂnate sysÂtem. But and then you can always switch back if you change your mind and put your readÂjust your stimÂuli to put them where you want them.
As well as that you can see how this looks on difÂferÂent sized screens. So you can just flick through these preÂviews here and autoÂmatÂiÂcalÂly dynamÂiÂcalÂly scale that panÂel to those screen resÂoÂluÂtions. Because it’s realÂly easy to see how it’s going to shake out in difÂferÂent screens. On the debug panÂel over here, you can actuÂalÂly look at indiÂvidÂual rows of your spreadÂsheet. So you can jump into speÂcifÂic triÂals to see how they work. And this makes it realÂly easy to trouÂbleshoot things.And finalÂly, you can play the triÂals for real yourÂself, no need to have to go into preÂview and gets the right thing. And you can see on the right we’re seeÂing the actuÂal logÂic of what’s going on here. So if I choose this now you can see it’s been marked as incorÂrect. As we go through that.
The next place this applies is also when it comes to spreadÂsheet ranÂdomÂizaÂtion. So I’m sure many of you familÂiar with using the spreadÂsheet to ranÂdomise your tasks. So here is a spreadÂsheet for my task where I’ve got my instrucÂtions and debrief. And I’ve got six triÂals going down there with their puzÂzle and their response options all conÂfigÂured up. So now, if you I want to ranÂdomise this, I’ve added a colÂumn — colÂumn here to just so all the triÂals I want to ranÂdomise have got a one in them and then and I can turn on ranÂdomÂizaÂtion, adding ranÂdomised triÂals and then specÂiÂfy the colÂumn I want to ranÂdomise on. I can click the litÂtle ranÂdomÂizaÂtion PreÂview butÂton, the litÂtle dice there. And I can just click it over and over again to see the ranÂdomÂizaÂtion logÂic runÂning for real. And this gives me a preÂview of what’s going to hapÂpen when my parÂticÂiÂpants and take part and how it might ranÂdomise them.
If I wantÂed to do more comÂplex ranÂdomÂizaÂtion, so for examÂple, the first one, I did is just ranÂdomise that, that set of triÂals. But here I’m going to I’m going to do it based on the same field. But I just wantÂed to take a ranÂdom subÂset, I’d want to take three of those triÂals, and then ranÂdomise them, so I can just reorder those. So we’re going to take three of that, that secÂtion, and do them in a ranÂdom order. And again, we can see that hapÂpenÂing. And we can see those triÂals comÂing through as a ranÂdom subÂset of those in a ranÂdom order. So all of this is live, all of this is reacÂtive. And order, this is showÂing you exactÂly what’s going to hapÂpen all comÂpleteÂly withÂin the tooling.
The secÂond big idea here is what we call the comÂpoÂnent sysÂtem. So now in a traÂdiÂtionÂal sysÂtem, each eleÂment on the screen is just a sinÂgle thing. So just an image or a butÂton or someÂthing like that. Now, the probÂlem with that approach is that you quickÂly end up with a sort of comÂbiÂnaÂtoÂrÂiÂal exploÂsion of behavÂiours, you need an image, a clickÂable image or dragÂgable image and a clickÂable text and a dragÂgable text and so on. And this that ends up being sort of a limÂitÂed and someÂwhat britÂtle. So the soluÂtions, this is comÂpoÂnents. So instead of each of being one thing, each object is made up of sepÂaÂrate comÂpoÂnents, and you can kind of conÂnect them togethÂer like Lego bricks. So in the simÂplest case, you might want someÂthing that is an image. So we add an image comÂpoÂnent. We want you to be able to genÂerÂate response when you click on it. So we add a click response comÂpoÂnent. If we want you to be able to drag it, we add a dragÂgable comÂpoÂnent. If you want it to start out invisÂiÂble and then appear after 2000, 2000 milÂlisecÂonds, you can add a trigÂger visÂiÂble comÂpoÂnent and you set up one trigÂger so on the start of the screen, you can see that we’re going to set the visÂiÂbilÂiÂty to invisÂiÂble and then a secÂond trigÂger on time elapsed after two secÂonds, we’re going to set it to be visÂiÂble again.
9:45
And then for all of this behavÂiour, if actuÂalÂly latÂer on you change your mind and actuÂalÂly notice sorÂry, this isn’t gonna be an image it’s going to be a video. All you need to do is swap out the image for a video and all the othÂer stuff behaves exactÂly the same way. All these othÂer comÂpoÂnents don’t realÂly care what the the main thing you’re playÂing with is over here. And they all interÂopÂerÂate realÂly, realÂly seamÂlessÂly. So we can see this in action now. So here’s, I’ve got an image here with a stimÂuÂlus on it. And let’s go through that trigÂger visÂiÂble one here. So you can see here, we can just the all of the UI here, reacts to the setÂtings you’re putting in. So it’s all niceÂly aware, it only shows you the setÂtings that you need. And it makes it realÂly, realÂly easy to conÂfigÂure all these things visuÂalÂly. So you haven’t had to touch any code to do all of this stuff. This is all hapÂpenÂing here. Because the after two secÂonds delay, then my image appears.
Now, the next thing I was taught was bindÂing. Now bindÂing is a key conÂcept in GorilÂla, we had this in task builder one, but we’ve extendÂed it and made it more powÂerÂful and easÂiÂer to use. The basic conÂcept of bindÂing is you’ve seen is that when you have your your triÂal, which in this case, say has a fixÂaÂtion, a stimÂuÂlus and a response, well, the fixÂaÂtion is the same. And maybe the response items are the same, but we want to change the stimÂuÂlus with each triÂal. So what we want to do is basiÂcalÂly inject the valÂue from our spreadÂsheet into that into that stimÂuÂlus box where we where we define what our stimÂuÂlus is going to be. Now, it could come from your spreadÂsheet, but it can come from othÂer places, you can also do it in the experÂiÂment tree. So if you’re ranÂdomisÂing peoÂple to two conÂdiÂtions, you might want to specÂiÂfy here at the manipÂuÂlaÂtion levÂel, well, group A is going to have a time limÂit, there’s bound to a manipÂuÂlaÂtion and in one conÂdiÂtion, they get 10 secÂonds, now they get 20. And so this is all done in here so that whenÂevÂer so in this case, here’s the bindÂing that stimÂuÂlus to the to the spreadÂsheet, so you can just add it as a fixed one as a staÂtÂic one, or you click this litÂtle bindÂing butÂton, litÂtle chain links. And then you can choose the colÂumn that you want to bind it to. So no havÂing, no havÂing to type in magÂic things, it’s already aware of all the columns that you have, if you specÂiÂfy a new one, it appears, the same thing goes for manipÂuÂlaÂtions. And finalÂly the store. So the store is a new verÂsion of embedÂded data. And you can do the same kind of thing. So when you’re savÂing stuff out to embedÂded data to store it latÂer, that all kind of hapÂpens through this UI. And ideÂalÂly, when you want to bind it back in again, to use it.
You’ve now got much more conÂtrol over responsÂes. So the response proÂcessÂing has takÂen a big way up. Now, in most triÂals, one way or anothÂer, we present someÂthing on the screen and wait for the parÂticÂiÂpant to do someÂthing and record their response. Now, by default, you wait for response from the parÂticÂiÂpant and advance on the first one. But that’s not always what we want. The simÂplest thing you might want to do is score it. So you can add in a score at your screen. And you can mark it corÂrect if it matchÂes a parÂticÂuÂlar answer, you might want to only advance on the first corÂrect response, not just any response. So they can get it wrong as many times as they like and you only advance when they finalÂly get it right. You might want to only advance on a speÂcifÂic response.
More getÂting more comÂplex you might want to put in, you’re able to force them to do a cerÂtain amount of effort, they might have to do 20 responsÂes in order to get through to the next one. And this is a way in which you can essenÂtialÂly take these indiÂvidÂual responsÂes and comÂbine them into one sort of bigÂger one that you then process latÂer. So and you can do the same thing with comÂpound responsÂes. And I’m going to show you an examÂple of this in a moment, where we essenÂtialÂly want to take a bunch of responsÂes and to join them togethÂer as if they’re spelling out a word or someÂthing like this. But again, the imporÂtant point here is that all of these things are decouÂpled and modÂuÂlar. So you can comÂbine them togethÂer in a way that works for you.
So here’s a good a quick examÂple of a digÂit span, this is the screen where you actuÂalÂly enter the numÂbers at the end. So we’ve shown the parÂticÂiÂpant a sequence of three numÂbers, and you’ve got to rememÂber them. So you can see if I just hit 123, we can see the response buildÂing up in that panÂel on the right. And you can you can use a backÂspace there if they want to delete an answer. And we can see that that will come through in the panÂel on the right.Now each of those indiÂvidÂual butÂtons is just a regÂuÂlar butÂton with a response on it. And it’s this comÂpound responsÂes piece that is doing the joinÂing togethÂer. So what a comÂpound response comÂpoÂnent is doing is is sayÂing okay, well, we’re going to wait until we’ve got at least three and only then do we pass it on through the pipeline to what we’ve got there is the score, which can then mark it against our corÂrect answer. You can use the same thing to do things like trail makÂing. So this is just a this is just a simÂple examÂple. But you can imagÂine this could have a map or someÂthing behind it, where they’re clickÂing the things in order in order to build a trail. And again, you can see the responsÂes comÂing through on the side. And it’s the same comÂpound responsÂes as joinÂing all those things togethÂer. In order to basiÂcalÂly amalÂgaÂmate all those indiÂvidÂual clicks into one sort of canonÂiÂcal response.
14:21
So with all this togethÂer, there’s a huge amount of othÂer things that you can do here. Where you can do that we can do difÂfiÂculÂty ratchÂetÂing. So where you have mulÂtiÂple spreadÂsheets of difÂferÂent difÂfiÂculÂty might have a spreadÂsheet of easy triÂals, mediÂum triÂals and hard triÂals. And again, we can do all this realÂly, realÂly easÂiÂly in the UI you simÂply store the count of corÂrect and incorÂrect answers then you add a criÂteÂria here for well for movÂing between the spreadÂsheets that lets you do difÂfiÂculÂty ratcheting.
You could do stairÂcasÂing and this is the one that Jade was buildÂing earÂliÂer. We do the same trick of countÂing their corÂrect and incorÂrect answers. And then we add criÂteÂria for stepÂping our tarÂget valÂue in this case, how long they get to see a stimÂuÂlus for we step that tarÂget valÂue up and down. We they get less time to see it, the betÂter they do it You can do withÂin task branchÂing. So jumpÂing between rows and spreadÂsheets. So again, based on the criÂteÂria you want to have, you can jump to a difÂferÂent row, that was how we did the going back to your, your pracÂtice triÂals again. And just branchÂing withÂin difÂferÂent screens, again, with the same criÂteÂria, you can say, Well, based on what they say here, or what hapÂpens here, we want to jump to this othÂer screen.
And so that’s where we are at the moment. This is live now on GorilÂla, and you can all go and have a go with it. And comÂing soon is scriptÂing. So the main things we want to add in here, first of all, the abilÂiÂty for you to build your own comÂpoÂnents. Now, the cruÂcial thing about this is that when you build a comÂpoÂnent yourÂself, you can expose the setÂtings that it needs as UI eleÂments in the actuÂal toolÂing. So when you’ve built your comÂpoÂnent, you’ll be able to add a litÂtle conÂfigÂuÂraÂtion menu, just like all the ones that you’ve seen. So peoÂple try to conÂfigÂure how they want your comÂpoÂnent to work. And you’ve got access to all of the bindÂing tech and everyÂthing else that’s in there. So othÂer peoÂple using your code, they don’t need to copy in your script and mess around with it, they can, it will come up for them just like any othÂer any othÂer piece in the tools.
And all of the things that I’ve shown you whether they’re visuÂal things, like images, or videos or anyÂthing like that, you can build those anyÂthing to do with behavÂiour, whether they show or hide whether they trigÂger or this othÂer kind of stuff, any of the response proÂcessÂing things. And indeed any othÂer ranÂdomÂizaÂtion things. They’re all just comÂpoÂnents, and you script them all in the same kind of way with the same set of interÂfaces. So it’s all realÂly, realÂly conÂsisÂtent and easy to get into.
And then finalÂly, the othÂer bit that’s comÂing soon is our new evoÂluÂtion of open mateÂriÂals. So obviÂousÂly at the moment, in open mateÂriÂals, you can share experÂiÂments and tasks, but the evoÂluÂtion we want to put in there as you can also post comÂpoÂnents to that as well. So whenÂevÂer you build someÂthing that’s realÂly useÂful and reusable, you can post that to open mateÂriÂals. And it’ll actuÂalÂly come through in the UI for peoÂple to put into their own tasks.
I can see we’re runÂning a bit over time, there’s one othÂer thing I wantÂed to show you quickÂly. So this is a very simÂple demo we made for doing your UI and UX research. So here we are, I’ve got the gorilÂla webÂsite, mountÂed in a tablet frame. And what I’ve done is I’ve added litÂtle hotspots, which is essenÂtialÂly a clickÂable region of the screen over the top of the image to see how they navÂiÂgate through this UI. And what I’m interÂestÂed in is whether they go through the signup flow where they go and look at the tools. And again, this is done realÂly simÂply, you can see in the toolÂing here, we’ve got here’s the landÂing page, you see there you can see that checkerÂboard is where the where the hotspot is. And then if you go into the signup one, we’ve got two more there one if they click on the signup flow. And one if they click on the headÂer, and in the screen, there’s my branchÂing, which basiÂcalÂly lisÂtens for a response and then jumps to a parÂticÂuÂlar screens based on where they’ve clicked.
So all of that lets you do things like so what we’re realÂly tryÂing to do is expand out all these othÂer difÂferÂent kinds of areas of research that you can do in these tools. And we are on time, so I was going to I think mulÂtiÂplayÂer we’ve done before, but we can come back to that latÂer. And the last thing I wantÂed to share with everyÂone is that obviÂousÂly Task Builder 2 is out now. Now we are we’re seeÂing lots and lots take up for it, which is realÂly excitÂing to see what peoÂple are buildÂing with it. And finalÂly, I just wantÂed to tease that we are also buildÂing quesÂtionÂnaire builder 2. I know there’s been a lot of appetite for this amongst GorilÂla users. So all the goodÂies that you want and expect from a powÂerÂful quesÂtionÂnaire builder is going to be there. So whether responsÂes are optionÂal or required, conÂdiÂtionÂal, conÂdiÂtionÂal quesÂtions, branchÂing ‚scorÂing, being able to accept your URL paraÂmeÂters in from othÂer sources and indeed the script same kind of scriptÂing supÂport that I’ve talked about for task builder 2 that’s going to be in quesÂtionÂaire builder 2 as well, and that is all comÂing soon as well. And so that is everyÂthing that we’ve been buildÂing at the moment and we’re realÂly excitÂed to see where you can take it.
Jo EverÂshed 18:55
FabÂuÂlous, thank you Nick for sharÂing the improveÂments to GorilÂla task builder, and where all of that work is going. That was absoluteÂly brilliant.

