LEGO and Open Source
What is LEGO?
- The LEGO Group (TLG) is a worldwide group of companies that collectively is one of the biggest names in the toy world
- LEGO bricks are the popular medium introduced in the 1950's, although LEGO makes many other interesting things
- The Adult Fan of LEGO (AFOL) Community is a large group of enthusiasts and hobbyists around the world
Highlights of where LEGO has been
(because a surprising amount of people don't know about things that have been going on for decades)
- 1930's: Carpenter Ole Kirk Kristiansen begins selling wooden toys
- 1940's: LEGO begins selling plastic toys
- 1950's: plastic takes over, modern brick system introduced
- 1960's: rise of specialized elements, gears, motors, themed sets, DUPLO
Highlights of where LEGO has been
- 1970's: minifigures, regular themes, Technic
- 1980's: long-running themes, 9V electronics system, educational line
- 1990's-2000's: short-running themes, explosion of colors, widely-available robotics platforms, video games, licensed lines, action figure lines
- During this time, the online hobby community quickly blossomed and gave rise to local events and user groups
- 2010's-2022's: crowdsourcing, increase in adult-oriented sets
- LEGO increasingly hires fans as employees and hobbyist-run events take the place of some official marketing events
What is open source?
- Software
Open-source software (OSS) is computer software with its source code made available and licensed with a license in which the copyright holder provides the rights to study, change and distribute the software at no cost to anyone and for any purpose. (Wikipedia)
- Philosophy
In production and development, open source as a philosophy promotes a) universal access via free license to a product's design or blueprint, and b) universal redistribution of that design or blueprint, including subsequent improvements to it by anyone. (Wikipedia)
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
- Free Redistribution
- Source Code
- Derived Works
- Integrity of The Author's Source Code
- No Discrimination Against Persons or Groups
- No Discrimination Against Fields of Endeavor
- Distribution of License
- License Must Not Be Specific to a Product
- License Must Not Restrict Other Software
- 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:
- The LEGO brick is NOT open source
- Selling anything with the word "LEGO" on it that TLG did not make is a bad idea.
- LEGO is not an open source company. TLG's lawyers are aggressive in defending their intellectual property.
- For the purposes of this presentation, we will not be discussing the merits of their legal cases
- The LEGO Group has made efforts towards using open source to benefit themselves, the AFOL community, and the educational community
- LEGO has open sourced some software (generally for Mindstorms robotics kits)
- The LEGO website has a fair play policy outlining what they consider to be appropriate legal practices for fan sites.
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
- Perl
- Apache
- Linux-based servers
- WordPress
- MediaWiki
- et cetera
Software: LDraw
- Open standard for LEGO CAD, started as an unlicensed DOS program in 1995. The LDraw file format, tools, and community all now use the name of this original program.
- The world of fan-created LDraw tools is (arguably) better than LEGO's officially released proprietary software (Creator, Digital Designer)
- The official Digital Designer program has some support for LDraw's text-based file formats (see http://wiki.ldraw.org/index.php?title=LEGO_Digital_Designer and http://wiki.ldraw.org/index.php?title=LDraw_to_LDD_conversion for more)
- Used for documenting and sharing original creations, for animating and rendering models, and for generating building instructions. The LDraw file format and parts library are licensed CC BY 2.0.
Software: LDraw Editors with a Graphical User Interface
Software: LDraw tools
(continued)
Software: LDraw file export tools
Software: Applied LDraw: Datsville
Software: Applied LDraw: Official Model Repository
Software: BrickStore/BrickStock
- BrickLink (http://www.bricklink.com/) is the primary online marketplace for buying LEGO parts. Like eBay, it is primarily peer-to-peer, but also includes professional sellers. Parts can be found using an Amazon-like catalog feature.
- Sourcing parts for a large project on BrickLink is actually rather difficult, since you will likely need to purchase from multiple sellers, and each seller's prices and quantity available vary.
- BrickStore is a popular tool for trying to make this easier, although development stopped in 2008: www.brickforge.de/software/brickstore/ (GPLv2)
- In 2014, after BrickStore was abandoned and a few attempts to relaunch the project had failed, a new project based on the same code emerged - now called BrickStock: http://brickstock.patrickbrans.com/ (GPLv2)
Software: BlueBrick
- Gold standard for LEGO train clubs planning group layouts, including modern snap-to-grid and multi-layer features.
- http://bluebrick.lswproject.com/ (GPLv3)
- Replaces Windows (.NET-based) open source project TrackDraw http://sourceforge.net/projects/trackdraw/
- ...which itself superseded the closed-source Track Designer program
- Backwards compatible to handle Track Designer files, and can even export layouts in LDraw format.
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: Linux RCX Tools
- Officially, LEGO only supported programming the RCX from Windows or a Mac.
- The results of the The LegoUSB Project ( http://legousb.sourceforge.net/index.shtml, GPLv2 ) have made support for the LEGO Mindstorms IR tower officially part of the linux kernel since the 2.6.1 release in 2004.
- http://www.mralligator.com/rcx/tools.html offers Send, Firmdl, and Librcx, which allow sending messages, downloading firmware, and exploring the ROM interface, respectively.
- Firmdl's source code makes an appearance in the movie Iron Man - implying that both LEGO pieces and open source software played a role in the suit's development.
Software: LeJOS
- The Java virtual machine has been ported to the LEGO Mindstorms EV3, RCX and NXT platforms, under alternate firmware.
- http://lejos.sourceforge.net/(mostly Mozilla Public License 1.0)
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
- The Power Functions electronics system was replaced without backwards compatibility. Suddenly, a new train set can't run a light and motor at the same time, but the battery box has Bluetooth connectivity and the ability to detect what's plugged into it.
- LEGO introduced this system to the educational market in WeDo 2.0 as "Power Functions 2.0" long before introducing it as Boost at retail, and then rebranded it as Powered Up when it appeared in other sets - including a DUPLO train that only used the Bluetooth Low Energy part without any plugs at all.
- When LEGO opened up the documentation, they skipped all of those brand names in favor of "LEGO Wireless Protocol 3.0.00". Not only is the documentation now available (see https://lego.github.io/lego-ble-wireless-protocol-docs/ ), but the code that creates that webpage is now on GitHub: https://github.com/LEGO/lego-ble-wireless-protocol-docs (MIT license)
- BoostRemote (MIT license) is a fan-created iOS app for controlling this hardware from iPads and iPhones
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
- LEGO User Groups are patterned after technical users' groups, which have been around since the 70's
- LEGO User Groups and Linux User Groups regularly have conflicting acronyms and web addresses
Philosophy: photo sharing
- Brickshelf
- Flickr
- MOCPages
- Although the Fibblesnork backgrounds (a fixture of the online LEGO community since 1996) predate Creative Commons (started in 2001), the terms for using them are similar to a CC-BY-ND license: they are freely available for use on any website, provided that every page using one includes a link back to the page about them (including the various sizes and colors as well as a simple "Terms of Use" explaining that) http://www.lugnet.com/fibblesnork/lego/backgrounds/
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
- You can use open hardware 3D printers and files from Thingiverse (http://www.thingiverse.com) - all files on Thingiverse use Creative Commons licenses
- Most 3D printers use the same type of plastic used to make LEGO bricks, but cannot match LEGO's quality standards (although acetone vapor can make the appearance similar). Calibrating a 3D printer well enough to compete with injection-molded parts is possible, but still not practical or economical (except for cases where LEGO doesn't make a shape you need).
- Purist LEGO hobbyists won't use these - if it's not made by LEGO, it's "cheating". Hackers are usually happy to use these. We can't agree on everything.
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
- The AFOL community has learned the ins-and-outs of every protocol LEGO has ever produced: 9V, Power Functions, Mindstorms (RCX), Spybotics, Cybermaster, Mindstorms (NXT), etc - if you can't find details on the internals of a system, it's just a matter of time before it's out there.
- For the Power Functions IR remotes, LEGO released the protocol documentation, as announced on the fan-run blog, TechnicBRICKs. The "license" is simply a blurb saying "Please feel free to use any information from this document for personal, non-commercial use only, provided you keep intact copyright, trademark and other proprietary rights of the The LEGO Group - have fun."
- DIY Mindstorms sensors
Philosophy: LEGO Robots with non-LEGO "brains"
- Arduino - the most popular non-LEGO hobby robotics platform
- Raspberry Pi - a full computer (running Debian Linux) the size of a credit card