Belle-Ve Bricks

Your Imagination

What Is A LEGO® MOC?

In This Article

Create Your

We help you from start to finish to create and deliver your tailor-made custom model.
Custom model
Continue

LEGO® is a brand that needs no introduction. With its tiny, interlocking bricks, it has captured the imaginations of children and adults alike for decades. However, the LEGO® universe expands beyond the standard sets sold in stores. 

For those who love to step out of the box, or more precisely, love to build outside of the box, the concept of LEGO® MOC exists. Let’s embark on a fascinating journey exploring LEGO® MOCs, their history, their significance in sparking creativity, and how you can dive into this creative world without being daunted by price tags.

Understanding LEGO® MOC

What is a LEGO® MOC?

LEGO® MOC, or “My Own Creation,” refers to unique models designed and built by LEGO® enthusiasts using standard LEGO® bricks. These creations are not based on official LEGO® sets; they are the fruits of individual imagination and creativity. They can range from simple structures to intricate, complex designs and span numerous themes and scales.

The Origins and Evolution of LEGO® MOC

1. 1950s-1960s: The Birth of Unofficial LEGO® Creations

Although LEGO® first became commercially available in the late 1940s, it wasn’t until the 1950s and 1960s that the idea of creating structures outside the prescribed LEGO® sets began to take shape. While the term “MOC” was not in use yet, the essence of LEGO® MOC was born during these decades.

2. Late 1990s: Advent of the Internet and the MOC Community

With the advent of the internet in the late 1990s, LEGO® enthusiasts began sharing their creations online, fostering a sense of community. The term “MOC” emerged during this period, allowing creators to differentiate their unique designs from official LEGO® sets.

3. The 2000s: Digital Designs and MOC Expansion

The MOC community saw further growth with the introduction of digital design software like LEGO® Digital Designer in the early 2000s. These tools enabled fans to design and visualize their MOCs digitally before building them physically.

4. The 2010s – Present: MOC Marketplace and Popularity Surge

The past decade has seen the establishment of MOC marketplaces and websites dedicated to sharing instructions for MOC designs. The popularity of LEGO® MOCs has surged, with creations becoming increasingly complex and sophisticated.

The Price Spectrum of LEGO® MOCs

While some MOCs, especially those with a high brick count and complex designs, can be expensive, there are MOCs available at various price points, suitable for every budget. Whether you’re a casual hobbyist or a serious collector, you’ll find MOCs ranging from less than $50 to several hundreds of dollars. Remember, the value lies not in the price tag but in the creative process and the joy it brings!

The Impact of LEGO® MOC on Creativity and Hobby

LEGO® MOCs help to elevate the LEGO® hobby to new levels by fostering creativity and encouraging outside-the-box thinking. They allow individuals to express their ideas and stories, enhancing problem-solving skills and spatial awareness. They’ve also led to the birth of numerous LEGO® MOC clubs, competitions, and exhibitions, making the hobby more vibrant and exciting.

Notable LEGO® MOCs of the Past Decade

Below, we delve deeper into some standout LEGO® MOCs from the past decade, each testament to the boundless creativity and meticulous craftsmanship of LEGO® builders worldwide.

1. The Rivendell LEGO® MOC

A glorious tribute to J.R.R. Tolkien’s Middle Earth, the Rivendell LEGO® MOC is a massive and exquisitely detailed model of the Elven city as depicted in Peter Jackson’s “The Lord of the Rings” film series. Assembled from over 200,000 bricks, this breathtaking project was undertaken by two LEGO® enthusiasts, Alice Finch, and David Frank.

They spent more than a year meticulously crafting every aspect of the Elven paradise, from the majestic waterfalls and beautifully architected buildings to the diverse flora. Viewers can spot familiar sights like the Council of Elrond, where the famous ‘Ring’ was decided to be destroyed. It is a stunning example of the lengths MOC creators can go, driven by passion and the love for LEGO®.

2. The Kennedy Space Center LEGO® MOC

Created by Lia Chan, this LEGO® MOC captures the essence of NASA’s Kennedy Space Center in all its grandeur. It is a microscale model that meticulously represents several significant elements of the real-life launch site. You can spot the Vehicle Assembly Building (VAB), the crawler-transporters, launch pads with rockets ready for liftoff, and more.

Constructed with an estimated 50,000 pieces, this MOC showcases impressive attention to detail, with each structure intricately designed to reflect its real-life counterpart accurately. It’s a remarkable example of the blend of science, engineering, and creativity that LEGO® MOCs can offer.

3. The Colosseum LEGO® MOC

A certified LEGO® professional, Ryan McNaught designed this colossal and highly detailed recreation of Rome’s iconic Colosseum. It’s divided into a “before and after” to show the Colosseum in its prime and its current, partially-ruined state. The model used a whopping 200,000 bricks and is an awe-inspiring testament to the historical and architectural wonder.

This MOC provides a remarkable glimpse into Roman history, from the intricate archways to the vast crowds of LEGO® spectators, gladiators, and animals. This project showcases the potential of MOCs to bring history to life in an interactive and tangible way.

4. The Erebor LEGO® MOC

Another stunning example of LEGO® MOC is the Erebor recreation by David Frank and Alice Finch (the duo who created the Rivendell MOC). Erebor, the Lonely Mountain from “The Hobbit” series, is intricately captured in this model. This gigantic build boasts approximately 120,000 pieces and features impressive elements such as the hidden door, Smaug the dragon guarding his treasure, and the grand halls of the dwarven kingdom.

5. The Polar Express LEGO® MOC

Tony Sava’s Polar Express LEGO® MOC is a classic example of an expert-level building. He painstakingly recreated the iconic train from the beloved children’s book and movie “The Polar Express.” The train, complete with detailed passenger cars filled with excited children and a gigantic locomotive at the front, is a sight to behold. Tony Sava’s MOC is a heartwarming testament to the joy and wonders that LEGO® MOCs can evoke.

How to Get a LEGO® MOC?

Acquiring a LEGO® MOC may seem challenging at first, especially for beginners. However, the process becomes smoother and enjoyable as you familiarize yourself with the steps. Here, we break down the journey to owning a LEGO® MOC in detail:

1. Decide on a Theme

The first step to creating your LEGO® MOC is deciding on a theme. This can be based on your interests, favorite films, books, historical events, or surroundings. The possibilities are virtually limitless, from architectural marvels like the Eiffel Tower to fictional constructs like Hogwarts. The theme you choose will dictate your build’s style, size, and complexity. It can be helpful to sketch your ideas or jot down the elements you’d like to incorporate in your build to guide your design process.

2. Design Your MOC

Designing is where your ideas take shape. You can begin with traditional pen-and-paper sketches, creating diagrams of different views and perspectives of your envisioned model. Alternatively, several digital tools can aid your design process. LEGO® Digital Designer or BrickLink’s Studio offers vast catalogs of virtual LEGO® bricks and intuitive interfaces.

These digital tools allow you to experiment with different designs, colors, and structures without physically manipulating bricks. You can also calculate the number of pieces needed, making planning and budgeting your build easier. In the designing stage, you can let your creativity run wild, altering and perfecting your model until you’re satisfied with your blueprint.

3. Source Your Bricks

With your design in hand, the next step is to gather the necessary LEGO® pieces. You may own many of the bricks you need in your existing LEGO® collection. For the specific bricks that you don’t have, LEGO®’s Pick a Brick service and online marketplaces like BrickLink are excellent resources. These platforms allow you to buy individual bricks sorted by shape, size, and color, enabling you to source the exact pieces you need for your MOC.

4. Build Your MOC

Once you have all your bricks, it’s time for the most exciting part – building your MOC. This stage requires patience, as complex designs can take several hours to complete. However, the process is incredibly rewarding. Seeing your idea materialize brick by brick is a unique experience that fuels the joy of LEGO® building. Remember, there’s no need to rush; take your time, follow your design, and enjoy the journey.

5. Share Your Creation

After you’ve finished building, you’ll likely be eager to share your masterpiece. The MOC community is vibrant and welcoming, providing platforms to display your work and appreciate others. You can post photos or videos of your MOC online on various LEGO® forums, social media groups, or dedicated MOC websites. Local LEGO® exhibitions and LEGO® User Group (LUG) meetings are also great places to showcase your MOC, get feedback, and draw inspiration from other creators.

Getting a LEGO® MOC involves an amalgamation of creativity, patience, and a love for building. Each step offers its unique brand of satisfaction, culminating in a LEGO® model that is truly your own.

More Info

Here, we address some commonly asked questions about LEGO® MOCs, aiming to provide comprehensive and detailed answers to guide both beginners and seasoned builders alike.

Do I need special bricks for my MOC?

No, you do not need special bricks to create your MOC. You can use any standard LEGO® bricks that you have. LEGO® MOCs are about creativity and innovation, turning everyday bricks into extraordinary creations. However, certain builds may require specific types of bricks, especially if your design involves intricate or unique structures. You can source these bricks individually from LEGO®’s Pick a Brick service or marketplaces like BrickLink.

Can I sell my MOC designs?

Yes, you can sell your MOC designs and instructions. Platforms like BrickLink, Rebrickable, and MOC Shop offer services for creators to sell their designs. You can provide digital files of the design, detailed step-by-step instructions, and a parts list to help others recreate your MOC. It’s a great way to share your creativity with others and even earn some money from your hobby.

How can I learn to create MOCs?

The best way to learn to create MOCs is by starting with simple designs and gradually increasing complexity. Many online tutorials offer step-by-step guides to creating your first MOC. Platforms like YouTube have abundant LEGO® building tutorials ranging from beginner to advanced levels.

Additionally, joining LEGO® communities, both online and offline, can provide a wealth of inspiration and advice from fellow LEGO® MOC enthusiasts.

Where can I share my MOC designs?

There are several platforms to share your MOC designs. Websites like MOCpages, Flickr groups, and the BrickLink Gallery provide space for you to upload images and videos of your creations. Social media platforms, including Instagram and Facebook, have active LEGO® communities where creators share their works. Offline, you can exhibit your designs at LEGO® conventions, exhibitions, and user group meetings.

How do I know how many and what kind of bricks I need for my MOC?

If you use a digital design tool like LEGO® Digital Designer, these programs will generate a parts list detailing the type and number of bricks required for your design. This list is crucial when sourcing your bricks. If you design without such tools, you will need to keep track manually, which may be challenging for larger designs.

How long does it take to build a MOC?

The time it takes to build a MOC varies greatly depending on the complexity of the design, the number of bricks involved, and your building speed. A small, simple MOC may take a few hours, while larger, more complex designs can take weeks or months. Remember, building a MOC is not a race; the process of creating and problem-solving is where much of the enjoyment lies.

Conclusion

LEGO® MOCs have transformed the way we view and engage with LEGO®. They allow unrestricted creativity, giving rise to a vibrant community of LEGO® lovers who inspire and learn from each other. Regardless of your budget, there’s a place for you in this exciting world of LEGO® MOCs.

So, why wait? Contact Belle-Ve Bricks today to embark on your LEGO® MOC adventure! Their high-quality, curated selection of LEGO® MOCs is just the springboard for exploring your creativity with LEGO®.

<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);
Popular Posts