LEGO and Open Source

Fork me on GitHub

What is LEGO?

Highlights of where LEGO has been

(because a surprising amount of people don't know about things that have been going on for decades)

Highlights of where LEGO has been

What is open source?

Defining Open Source

The Open Source Initiative has an official, authoritative definition of what makes an Open Source license, which the below bullet points are taken from: https://opensource.org/osd-annotated
  1. Free Redistribution
  2. Source Code
  3. Derived Works
  4. Integrity of The Author's Source Code
  5. No Discrimination Against Persons or Groups
  6. No Discrimination Against Fields of Endeavor
  7. Distribution of License
  8. License Must Not Be Specific to a Product
  9. License Must Not Restrict Other Software
  10. License Must Be Technology-Neutral

Highlights of where Open Source has been


Linux
Chrome, Firefox
GIMP
EAC, Audacity
WordPress
Web technologies
Wikipedia
Creative Commons

First, let's clear up misconceptions:

There are a number of open source projects that have helped build the modern AFOL community

Disclaimer: Note that not everything mentioned in this presentation has a proper Open Source license. Not every LEGO enthusiast who engages with Open Source software or the open source philosophy grasps or agrees with the need for open licensing. Further, some people are afraid to put a formal license on their work because of concerns about LEGO owning certain data that they've relied on. In some cases, it makes sense to discuss closed-source or proprietary software to give background about an open source project.

First, the obvious: Website software

Software: LDraw

Software: LDraw Editors with a Graphical User Interface

Software: LDraw tools

Software: LDraw tools

(continued)

Software: LDraw file export tools

Software: Applied LDraw: Datsville

Picture of Datsville

Software: Applied LDraw: Official Model Repository

Software: BrickStore/BrickStock

Software: BlueBrick

Software: Mosaics

Software: LUNI (LEGO Universe Newly Imagined)

LEGO Universe was an official MMORPG aimed at kids. After a series of delays, the game was available from October 2010 through January 2012. The game acquired a cult audience but never met the LEGO Group's expectations. In the absence of an official server for playing the game, the LUNI Server Project ( http://luniserver.com/ ) has emerged to allow fans to play (most of) the game.

A representative from LEGO granted limited permission for the project to continue (non-commercially, with copyright disclaimers but without any formal license).

The project has since moved to GitHub (https://github.com/LEGOUniverseArchive/) and adopted a variety of licenses.

Software: YubNub

"A social command line for the web". YubNub is a faster way of searching websites, and includes commands for searches of LEGO-specific databases.
Hosted at http://yubnub.org/ and on GitHub: https://github.com/JonathanAquino/yubnub (MIT license)
Screenshot of the "ls lego" command on YubNub

Software: Linux RCX Tools

Software: LeJOS

Software: Mindstorms firmware (NXT)

Unofficial open source projects for the NXT:
NXTGCC: http://nxtgcc.sourceforge.net/
Improved Firmware: http://nxt-firmware.ni.fr.eu.org/
Enhanced firmware and BricxCC (IDE for programmable bricks): http://bricxcc.sourceforge.net/ (Mozilla Public Licence)
There are enough of these to keep track of since LEGO officially open-sourced the NXT firmware that there is an unofficial guide to these: http://www.mindstorms.rwth-aachen.de/trac/wiki/FirmwareVersions

Software: MINDdroid

Software: Mindstorms remotes

Remote controls made by the hobbyists have the advantage of still being easy-to-find after LEGO stops selling a given product.

Software: Mindstorms EV3 runs Linux

EV3 (introduced 2013) is LEGO's replacement for the previous "NXT" Mindstorms system. It can use the NXT's sensors and motors, but unlike the NXT, runs full-blown Linux.

Software: Hacking LEGO Dimensions

2015's LEGO Dimensions was a LEGO/Warner Brothers play at the "toys to life" market, akin to Disney Infinity, Amiibo, and Skylanders. It remains closed-source, but there are Open Source reverse engineering projects that have unlocked the USB connection for most console's versions, the LEDs on the pad, and the NFC capabilities. The toys themselves use the proprietary MIFARE Ultralight C.

Software: Powered Up BLE Wireless protocol

There are elements of open source philosophy that have helped build the modern AFOL community

Philosophy & Software: Brickipedia

Philosophy: "The ultimate open source design product"

In June 2016, LEGO had a surprising response to fans who called out apparent mistakes in Technic set 42056 Porsche 911 GT3 RS:
Thank you to all our dedicated fans for the comments regarding the GT3 RS by LEGO Technic.

It is correct that the gears in this model are not sequential as in the real Porsche PDK. This is however, a deliberate decision taken to ensure that we make the best possible LEGO version of this amazing car that both meets our design requirements and gives everyone a great building and product experience.

It was a considered decision taken during development that the gears running in the correct order meant that it did not result in a great experience when driving the car. Too many gears are engaged at the same time and smooth running with all those tolerances is just not possible.

If you switch the build in steps 267 and 269 the gears will run sequentially, and everyone who feels that this is the better solution should feel encouraged to do so.

LEGO Technic really is the ultimate open source design product and now that it is finally available, we look forward to seeing all the ‘improved’ models our fans create. After all, that is what LEGO building is all about.

We hope everyone will have a great building experience and feel a strong sense of pride from creating both our version and their very own LEGO Technic representation of a Porsche GT3 RS. We are very fortunate to have such skilled and dedicated fans that can spot this small deviation from reality and would like to thank everyone for sharing their ideas and expert knowledge.

Philosophy: shared building instructions

Philosophy: shared Mindstorms programs

Philosophy: User Groups

Philosophy: photo sharing

Philosophy: open data (databases)

These sites are not truly open source, but are database-based resources popular in the LEGO community that accept some form of contributions from the community.

Philosophy: open data (APIs)

None of the below are truly open source. All of these APIs expose resources built by the LEGO community to other developers.

Philosophy: Creative Commons licensing

Philosophy: Creative Commons licensing

(continued)

Philosophy: Custom 3D-printed elements

Philosophy: LEGO-compatible elements

(a sample of 3D-printable designs on Thingiverse)

Philosophy: LEGO-compatible elements

(a sample of 3D-printable designs on Thingiverse - continued)

Philosophy: LEGO-compatible elements

(a sample of 3D-printable designs on Thingiverse - continued)

Philosophy: Adapters to LEGO elements

(a sample of 3D-printable designs on Thingiverse)

Philosophy: Adapters to LEGO elements

(a sample of 3D-printable designs on Thingiverse - continued)

Philosophy: laser-cut designs

Philosophy: Hacking Electronics

Philosophy: LEGO Robots with non-LEGO "brains"

LEGO and Open Source

Fork me on GitHub Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.