LEGO therapy is a play-based form of therapy that is used to aid in the development of social communication skills for children and teenagers on the autistic spectrum (otherwise known as Autistic Spectrum Disorder – ASD).
What is LEGO® Therapy and who is it for?
It was recognized by Dr. Daniel LeGoff in 2003 that a vast number of children on the spectrum had an interest in LEGO. His ideology behind this type of therapy was to use LEGO® play to replicate real-life scenarios, with the aim being that the child would be able to transfer these experiences when they were socially interacting with other peers.
LEGO therapy aims to use a child’s natural sense of curiosity and love of playing to stay engaged throughout the session whilst developing their communication and social skills. During the session, the child plays one of four roles (engineer, supplier, builder, or director), with the children changing roles each time they attended LEGO® therapy.
LEGO therapy is aimed at children and teenagers between the age of 5 – 12 years old with autism spectrum disorder (ASD) or other types of social communication difficulties.
These sessions typically last between 45 minutes to two hours and are held once a week for around 6 weeks with each therapy session consisting of three or more children or teenagers. A price you would expect to pay for this would be between £150 to £250 in total.
How does LEGO Therapy work?
As I mentioned above, there are four roles that the children will play a part in. These are:
Engineer
- This is the only person who has access to and sees the instructions
- They will communicate with the supplier to describe what bricks are required
- They oversee the work the builder is doing to make sure he or she has been given the right bricks from the supplier.
- They make sure the builder is building the model correctly.
Supplier
- They supply the bricks to the builder.
- They ask questions to ensure they know which bricks to pick.
- Whilst they wait for the builder to finish, they wait patiently.
Builder
- They take the bricks from the supplier and put them together.
- The engineer will pass them instructions about how the model should be built.
- If they have any questions about the building, they will communicate these with the engineer.
- Whilst they wait for the supplier to provide the bricks they wait patiently.
Director
- Their main job is to watch over all other roles and to ensure everyone is communicating.
The adult’s job is to observe and play a non-intrusive role throughout the therapy session. It is not uncommon for emotions to run high, and children do not interact well with each other or believe their way is the right way or the only way.
The adult facilitator is there to support but not intervene unless necessary. It’s important that the children or teenagers are left to try and resolve their own issues or quarrels, if the adult realizes assistance is required, they may offer support or guidance the keep them focussed and engaged.
Who can carry out LEGO® Therapy?
In a professional environment only, trained people should run LEGO® therapy sessions. However, if you were thinking of doing this for your child or a friend’s child it’s an option provided you read about it and understand the process.
A typical list of people who hold these sessions are:
- Speech and language specialists
- Psychologists
- Occupational therapists
- Play therapists
- Individuals who have completed a LEGO® therapy training course
There is also the possibility that you could sign up to do a LEGO® therapy course yourself, this typically costs around £200 – £300 for a one-day course.
What are the benefits of LEGO® Therapy?
LEGO therapy has proven to bring outstanding benefits to children and teenagers who have a requirement for development in one or more of the following areas:
- Building patience
- Working with others
- Communicating with others
- Non-verbal skills
- Having empathy for others
- Using more descriptive words to communicate what they would like
- Ability to follow instructions
How to find places that run LEGO® Therapy sessions
I could provide you with a tonne of links but the best advice I can give is to go to Google and search for ‘LEGO Therapy classes near me or ‘LEGO Therapy’
Where to find sets to use for LEGO® Therapy?
At Belle-Ve Bricks, we sell all kinds of sets that would work great with LEGO® therapy sessions.
Check out our shop which includes a lot of favorites from children’s and teenagers’ comics, TV series, movies, and more!
Reading material
If you are interested in this topic, why not have a look at the below books that we recommend:



Conclusion
<div class="badge-base LI-profile-badge" data-locale="en_US" data-size="large" data-theme="dark" data-type="HORIZONTAL" data-vanity="ferdi-vol" data-version="v1"><a class="badge-base__link LI-simple-link" href="https://www.linkedin.com/in/%E2%9C%85-ferdi-vol-corporate-gifts/?trk=profile-badge"></a></div>
/* Auto generated, hash = 5dceu9kevqjdyuy2uw1atqrsu */
//TODO: Break this file down so that we can actually unit test it.
(function(window) {
/**
* Renders all unrendred LinkedIn Badges on the page
*/
window.LIRenderAll = function () {
var CALLBACK_NAME = 'LIBadgeCallback', //Must match callback on helpers.js
BADGE_NAMES = '.LI-profile-badge, .LI-entity-badge',
// TODO -- tracking param for other badge types
TRACKING_PARAM = 'profile-badge',
responsesReceived = 0, //Keeps track of number of responses recieved for proper cleanup when finished
expectedResponses = 0, //Keeps track of number of responses to expect
scripts = [ ], //Keeps track of scripts added for proper cleanup when finished
childScripts = {}, //Keeps track of child scripts to render
badges = Array.prototype.slice.call(document.querySelectorAll(BADGE_NAMES));
var i, len, badge, rendered;
for (i = 0, len = badges.length; i < len; i++) {
badge = badges[i];
rendered = badge.getAttribute('data-rendered');
if (!rendered) {
expectedResponses++;
badge.setAttribute('data-rendered', true);
renderBadge(badge);
}
}
function isCNDomain() {
if (typeof window !== "undefined") {
var hostName = window.location && window.location.hostname || '';
return (/linkedin(-ei)?.cn$/).test(hostName);
}
return false;
}
function generateUrl(isEI) {
var domainPrefix = isEI ? 'https://badges.linkedin-ei' : 'https://badges.linkedin';
if (isCNDomain()) {
return domainPrefix + ".cn/";
}
return domainPrefix + ".com/";
}
function getBadgeKeyQueryParams(badge) {
return Array.prototype.slice.call(badge.attributes).filter(function (attr) {
return attr.name.lastIndexOf('data-key-', 0) !== -1;
}).map(function (attr) {
// Most browsers automatically lowercase the attribute name when its being read
// We are calling lowercase on it again to ensure consistency for any browsers that are lagging behind.
return encodeURIComponent(attr.name.replace('data-', '').toLowerCase()) + '=' + encodeURIComponent(attr.value);
});
}
/*
* Renders a single badge on the page
* @param badge: div element of badge to render
*/
function renderBadge(badge) {
var size = badge.getAttribute('data-size'),
locale = badge.getAttribute('data-locale'),
type = badge.getAttribute('data-type'),
theme = badge.getAttribute('data-theme'),
vanity = badge.getAttribute('data-vanity'),
version = badge.getAttribute('data-version'),
isEI = badge.hasAttribute('data-ei'),
entity = badge.getAttribute('data-entity'),
isCreatePage = badge.hasAttribute('data-iscreate'),
uid = Math.round(1000000 * Math.random()),
baseUrl = generateUrl(isEI),
queryParams = [
'locale=' + encodeURIComponent(locale),
'badgetype=' + encodeURIComponent(type),
'badgetheme=' + encodeURIComponent(theme),
'uid=' + encodeURIComponent(uid),
'version=' + encodeURIComponent(version)
],
url;
if (version === 'v2') {
baseUrl += 'view';
queryParams.push('badgesize=' + encodeURIComponent(size));
queryParams.push('entity=' + encodeURIComponent(entity));
queryParams = queryParams.concat(getBadgeKeyQueryParams(badge));
} else {
baseUrl += 'profile';
queryParams.push('maxsize=' + encodeURIComponent(size));
queryParams.push('trk=' + encodeURIComponent(TRACKING_PARAM));
queryParams.push('vanityname=' + encodeURIComponent(vanity));
}
if (isCreatePage) {
queryParams.push('fromCreate=true');
}
url = baseUrl + '?' + queryParams.join('&');
badge.setAttribute('data-uid' , uid);
jsonp(url); //Calls responseHandler when done
}
/**
* Handles a response from the server. Finds badge matching badgeUid and inserts badgeHtml there
* @param badgeHtml: String representing contents of the badge
* @param badgeUid: UID of the badge to target
**/
function responseHandler(badgeHtml, badgeUid) {
responsesReceived ++;
var i, badge, uid, isCreate;
var defaultWidth = 330 // max possible width
var defaultHeight = 300 // max possible height
for (i = 0, len = badges.length; i < len; i++) {
badge = badges[i];
// isCreate needed to prevent reloading artdeco script tag
isCreate = badge.getAttribute('data-iscreate');
uid = parseInt(badge.getAttribute('data-uid'), 10);
if (uid === badgeUid) {
var badgeMarkup = `<body>${badgeHtml}</body>`
var iframe = document.createElement('iframe');
iframe.onload = function() {
var iframeBody = iframe.contentWindow.document.body;
// 5 px buffer to avoid the badge border being cut off.
iframe.setAttribute('height', (iframeBody.scrollHeight || defaultHeight) + 5);
iframe.setAttribute('width', (iframeBody.scrollWidth || defaultWidth) + 5);
};
iframe.setAttribute('frameBorder', '0');
iframe.style.display = 'block';
badge.appendChild(iframe);
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(badgeMarkup);
iframe.contentWindow.document.close();
replaceScriptTags(badge, isCreate);
}
}
tryClean();
}
// These functions are needed because badge markup is added via innerHtml property which does not run script tags
function replaceScriptTags(node, isCreate) {
if (shouldReplaceNode(node, isCreate)) {
node.parentNode.replaceChild(cloneScriptNode(node), node);
childScripts[node.src] = true;
} else {
var i = 0,
children = node.childNodes;
while (i < children.length) {
replaceScriptTags(children[i++], isCreate);
}
}
return node;
}
function shouldReplaceNode(node, isCreate) {
return isScriptNode(node) && !childScripts[node.src] && (!isCreate || (isCreate && !node.getAttribute('data-isartdeco')));
}
function isScriptNode(node) {
return node.tagName === 'SCRIPT';
}
function cloneScriptNode(node){
var script = document.createElement("script");
for( var i = node.attributes.length-1; i >= 0; i-- ) {
script.setAttribute( node.attributes[i].name, node.attributes[i].value );
}
return script;
}
// Gets all incoming responses
window[CALLBACK_NAME] = responseHandler;
/**
* Tries to clean added tags
**/
function tryClean() {
//Clean up after all requests are done..
//Accounts for people including script more than once
var done = (responsesReceived >= expectedResponses && expectedResponses > 0) || responsesReceived >= badges.length;
if (done) {
delete window[CALLBACK_NAME];
// remove all script tags
scripts.map(function(script){
document.body.removeChild(script);
});
}
}
/*
* Makes Jsonp request, responses handles by CALLBACK_NAME
* @param url String: url of server to make request to
*/
function jsonp(url) {
var script = document.createElement('script');
script.src = url;
scripts.push(script);
document.body.appendChild(script);
}
};
if (document.readyState === 'complete') {
window.LIRenderAll();
} else {
window.addEventListener('load', window.LIRenderAll, false);
}
})(window);