Shopping at LEGO or Amazon?
Please use our links: LEGO.comAmazon
As an Amazon Associate we earn from qualifying purchases.

Brick Wizard: A tool for saving money on LEGO parts at BrickLink

Hi everyone! Over the past 18 months I have been working on Brick Wizard: an app for OS X/Windows that helps save money on BrickLink orders by determining the least expensive combination of stores for a given parts/wanted list. It's inspired by the awesome MATLAB scripts written by atxdad but it's much, much faster and easier to use :).

I hope you find this useful! Thanks for checking it out!
JosephLegobrandonCPCupIsHalfEmptybobabricksCombeeLegoManiaccsamiam391rancorbaitOldfanxpokKevin_Hyattkiki180703
«1

Comments

  • CupIsHalfEmptyCupIsHalfEmpty CanadaMember Posts: 547
    Awesome, thanks so much. I have been using atxdad's matlab program, so I will try this out when I get home to compare.
  • RotsiserMhoRotsiserMho Member Posts: 14
    Please let me know what you think!
  • RotsiserMhoRotsiserMho Member Posts: 14
    0.1.2 is out with support for BrickStock files along with some minor bug fixes.
  • Bosstone100Bosstone100 USAMember Posts: 1,434
    I'll be trying this during the week. I've used atxdad's utility for some projects and it's a real money saver. The only issue, and this isn't his fault but mine, is trying to remember how to get it running properly again after a layoff.

  • klatu003klatu003 Hobbiton, Shire, Middle EarthMember Posts: 724
    Decided to try this on some LDD files that I've been thinking of building. These are the steps I ended up with.
    1. Open App Lego Digital Designer
    a. File-Open LDD file [*.lxf(ml)]
    b. File-Export Model in LDraw format [*.ldr]
    2. Open App Brickstore
    a. File-Import-LDraw Model [*.ldr]
    b. Fix or delete unknowns
    c. File-Save in Brickstore XML format [*.bsx]
    3. Start Brickwizard
    a. Select wanted list Brickstore file [*.bsx]
    b. Select store combinations
    c. Find combinations

    Am I missing an easier way to get from LDD to Brickwizard? I am obtuse that way sometimes.
  • samiam391samiam391 A log cabin in PA, United StatesMember Posts: 4,375
    @klatu003‌ - I could have used this program for the Temple of Edoras! Definitely would have saved me some money.
  • klatu003klatu003 Hobbiton, Shire, Middle EarthMember Posts: 724
    Well I am not having any luck with the program finding combinations at 3 or 7 for:
    Orthank (rancorbait's LDD) or Mini Modulars 2 LDD (forget where I got it.)
  • RotsiserMhoRotsiserMho Member Posts: 14
    Unfortunately, there is no easier way (aside from using LDD Manager); fortunately, you are not obtuse ;-). I have not yet found a simple solution for importing LDD files as I don't currently have access to a database mapping the parts from LDD to BrickLink. I'm not sure if the developer of LDD Manager would let me use that database. If you're interested in seeing this feature added, please vote for it on our Trello board!
  • bobabricksbobabricks Vancouver, BC, CanadaMember Posts: 1,842
    Can't run Brick Wizard, my computer won't run it because it says it may put my computer at risk. :(
  • emilewskiemilewski CT, USAMember Posts: 476
    edited July 2014
    ^ Right click on the .exe file and click "unblock" and hit OK.
  • TheLoneTensorTheLoneTensor MericaMember Posts: 3,950
    edited July 2014
    ^ Without serious consideration for any application, that logic is a quick way to go from "at risk" to "compromised."
    klatu003Pitfall69canon03kiki180703
  • RotsiserMhoRotsiserMho Member Posts: 14
    Hi @bobabricks‌ . Are you on Windows or Mac when you see that message? It's true that one must be wary when running applications from the Internet. However Brick Wizard will not compromise your computer!
  • bobabricksbobabricks Vancouver, BC, CanadaMember Posts: 1,842
    I have Windows 8 and it's not me that is scared, my computer is. :P
  • emilewskiemilewski CT, USAMember Posts: 476
    edited July 2014
    I am running BrickWizard for the first time (other than the included test file) for a large batch of 3019 pieces in 167 lots (7 stores per combination). I did not mark the time when I kicked it off but it has been about 6 hours now that it has been running on "Pruning Stores". That may be fine but it looks like it is only using < 2% of the CPU and < 50 MB of RAM. That means it is either incredibly efficient or incredibly inefficient. I will run the matlab version next and see how it compares...it may not be efficient but as it uses all my CPU and memory I know it is working hard. I will see how they compare but it does not seem BrickWizard is using CPU to its advantage if it is using 2% of CPU capacity on an 8-core system.
  • RotsiserMhoRotsiserMho Member Posts: 14
    0.1.3 is now available. Highlights include drastically reduced memory usage (less than 100 MB, even for large numbers of combinations) and 2-6 times faster performance. A high-end computer (3GHz quad core) can process over a billion combinations in under 10 minutes.

    0.1.3 Beta for OS X
    0.1.3 Beta for Windows
    emilewski said:

    I am running BrickWizard for the first time (other than the included test file) for a large batch of 3019 pieces in 167 lots (7 stores per combination). I did not mark the time when I kicked it off but it has been about 6 hours now that it has been running on "Pruning Stores". That may be fine but it looks like it is only using < 2% of the CPU and < 50 MB of RAM. That means it is either incredibly efficient or incredibly inefficient. I will run the matlab version next and see how it compares...it may not be efficient but as it uses all my CPU and memory I know it is working hard. I will see how they compare but it does not seem BrickWizard is using CPU to its advantage if it is using 2% of CPU capacity on an 8-core system.

    There is a bug in 0.1.2 when working with very large numbers of combinations. It causes Brick Wizard to hang and unfortunately it will not recover. It should be fixed in 0.1.3. I made sure as much CPU is used as is available (although you will see usage taper off near the end as each thread finishes processing). Please give 0.1.3 a try and let me know how it works for you. Thanks!
  • RonyarRonyar Member Posts: 373
    ^ glad to hear it, as I was experiencing the same issue with 7 store searches. I like what I see so far. Thanks!
  • RonyarRonyar Member Posts: 373
    So, 10 Billion combinations in 10 minutes seems about right for what I am seeing on my computer. Unfortunately I'm hitting the ~10,000,000 Billion combination level pretty fast trying to find parts for older sets I'm trying to complete. Looks like I'll need to be pulling all of the more rare pieces out and rerunning it, as there is very little chance I'll ever be able to use the lower store #'s. This works great for the small number of pieces I need for individual sets, but the numbers quickly spiral out of control once I hit higher numbers of pieces. (Not at all a complaint about your program, more about the general number crunching required to find all of those pieces!) I feel like one of those people trying to explain how many stars there are in the universe. The numbers are just mind numbing at a certain point!
  • emilewskiemilewski CT, USAMember Posts: 476
    Version 1.3 works much better. 100% CPU usage all day. I think that that 64 quadrillion combinations that I have it processing is more than my machine can process in a reasonable time.

    Note to @RotsiserMho, a feature request would be to put a pause/suspend button in there in addition to cancel. My machine has been pegged all day, and when I want to do real work things are not responsive and I don't want to cancel and start over. If we can suspend processing and then pick up where it left off that would be useful if possible.
  • DadsAFOLDadsAFOL USAMember Posts: 617
    @emilewski, set the "threads" option to one less than you have processors. In other words, if you have a quad-core processor, set it to 3. I've been able to multitask fine now that that feature was added.
  • emilewskiemilewski CT, USAMember Posts: 476
    ^ true...but then my processing will be slower and I will have to wait longer before I get my results and can order my pieces! =)
  • LegobrandonCPLegobrandonCP CanadaMember Posts: 1,917
    I was never able to get Matlab running, so this is really useful. Quick and easy.

    I just gave it a run and it seems to work just fine. It is actually pretty fast, something I can leave in the background while browsing the forum.

    On a side note, I wonder why I can't find any of the Uni-Kitty variants on Brickstore?
  • scrumperscrumper UKMember Posts: 323
    @LegobrandonCP Search for "Kitty"
  • Steve_J_OMSteve_J_OM Cork, IrelandMember Posts: 961
    Quick question: I am about to export a file from BrickStore but the set has some counterparts (marked CP in the status column of the programme). If I import the file to Brick Wizard, does it automatically choose one or the other parts, or will I end up with part and counterpart? I.e. should I delete the counterpart before exporting the file so there's no duplication?
  • emilewskiemilewski CT, USAMember Posts: 476
    ^ I would say yes or I would suspect it will try to source both to meet your qty requirements for each.
  • RotsiserMhoRotsiserMho Member Posts: 14

    Quick question: I am about to export a file from BrickStore but the set has some counterparts (marked CP in the status column of the programme). If I import the file to Brick Wizard, does it automatically choose one or the other parts, or will I end up with part and counterpart? I.e. should I delete the counterpart before exporting the file so there's no duplication?

    emilewski is correct. Brick Wizard searches for all parts included in the wanted list.
  • RotsiserMhoRotsiserMho Member Posts: 14
    Brick Wizard 0.1.4 Beta has been released with international support!

    New Features
    • Added support for all countries and currencies supported by BrickLink!
      • Stores are now filtered by the selected country to ship to
      • Prices are displayed in the selected currency
    • Preferences are automatically saved
    • Added support for importing BrickLink wanted list XML
    • Number of threads defaults to one less than the maximum to avoid inadvertently locking up the system
    Bug Fixes
    • The number of stores per combination is now limited to the total quantity of items instead of the number of item entries. This allows for searching for large quantities of a single part.
    • Report more errors instead of simply crashing
    0.1.4 Beta for OS X
    0.1.4 Beta for Windows
  • RonyarRonyar Member Posts: 373
    Thanks for continued hard work. I'll test it out when I get a chance!
  • tomalphintomalphin Member Posts: 248
    Sounds awesome! I spent many hours getting the Matlab scripts working for my last purchase and this seems much easier!
  • RonyarRonyar Member Posts: 373
    So I have one question. Would it be possible to limit both where a store is and where it will ship to? Being in the US, I'd rather buy an item from a store in the US or at least in North America than ship from Europe. The way the program appears to work now, I can't remove any stores from the search that are in other countries if they indicate they will ship to the US. I like the added functionality, as I am sure there are times I'd like to search foreign countries for a very rare piece, but right now this pretty much ruined the functionality for me, as I'm getting results with lots of foreign sellers. (The other possibility is to somehow take shipping charges into account. That would change the cost calculation considerably, and would essentially fix this issue on it's own. I don't see any easy way to add shipping costs into what you've created though, so it doesn't seem to be an option.)

    That being said, can you make beta 0.1.3 available again? I'd much rather go back to the old functionality than have nothing at all, and I'm guessing I'm not the only person who would say that in the US. Thanks again for you hard work on this!
  • RonyarRonyar Member Posts: 373
    edited August 2014
    ^Apologies if I'm misunderstanding how this is working. If it is filtering so that only USA stores are showing when USA is selected, then great!
  • NeilCrosbyNeilCrosby United KingdomMember Posts: 77
    ^ Ronyar: Right now, it looks to me like the app's doing exactly what it says on the website - only showing you stores located in the US, no matter where you'd like to ship to.

    So, if you say to include stores that ship to the UK, you'll see US stores that ship to the UK. If you say to include stores that ship to France, you'll see US stores that ship to France. Currently, the only stores the app knows about are US stores.

    So, from my point of view (being in the UK), a game changer for the app would be to be able to select the country/continent that the store is in, as well as where it will ship to. So, in the same way that I could say "Only show me stores in the European Union that will ship to the UK" on bricklink, it would be fantastic to do the same thing in Brick Wizard. It's this functionality that's the only thing actively stopping me from being able to use the app at the moment, because of not wanting to be hit by import duties on these relatively small imports, which then get dwarfed by handling charges.
    peterlinddk
  • peterlinddkpeterlinddk DenmarkMember Posts: 170
    As @NeilCrosby‌ above states, the only thing keeping me/us from actively using the application (and make no mistake, it is amazing, and I would gladly pay "something" for is) is the ability to filter stores based on their location.

    There is heavy import duties as well as handling charges (here in DK we get charged around €22 ($30) just for handling the import duties) so we are mostly restricted to stores shipping FROM the EU, rather than TO our home country.

    While waiting for that enhancement, I will look for something to export wanted lists from Bricklink - any ideas?
  • RonyarRonyar Member Posts: 373
    Yep. Looks like I had it backwards. Still showing just the US sellers shipping to anywhere now.
  • RotsiserMhoRotsiserMho Member Posts: 14

    ^ Ronyar: Right now, it looks to me like the app's doing exactly what it says on the website - only showing you stores located in the US, no matter where you'd like to ship to.

    So, if you say to include stores that ship to the UK, you'll see US stores that ship to the UK. If you say to include stores that ship to France, you'll see US stores that ship to France. Currently, the only stores the app knows about are US stores.

    So, from my point of view (being in the UK), a game changer for the app would be to be able to select the country/continent that the store is in, as well as where it will ship to. So, in the same way that I could say "Only show me stores in the European Union that will ship to the UK" on bricklink, it would be fantastic to do the same thing in Brick Wizard. It's this functionality that's the only thing actively stopping me from being able to use the app at the moment, because of not wanting to be hit by import duties on these relatively small imports, which then get dwarfed by handling charges.

    Yup, this is what the app is doing and it's a bug I overlooked when adding the ability to filter based on destination. I apologize for the confusion. I agree that the desired behavior should be similar to BrickLink itself as you describe. I will work on getting this in the next release.

    Thank you all for taking the time to test this!
  • absolut3absolut3 Member Posts: 83
    anyone able to get a combination for cafe corner? I tried taking out all the pieces that are in limited quantity but still the program can't seem to find a combination doing 4 stores.
  • graphitegraphite USMember Posts: 3,270
    I've done about 15 Modular sized or bigger projects and from my experience something over 2000 pieces can't usually be done in under 7 or 8 orders. It goes up from there if it has rare parts. If you build something from the start using parts common to sets released in the last 2-3 years your chances of getting a low number of stores is better.

    I typically design in LDD first then pull from my BL store inventory first. Since all of my inventory is from parting out < 3 year old sets I typically get all of that from my store. Even when I can get 1600 of 2500 parts from my inventory it still takes 6-8 orders to get the last parts.

    This is assuming of course that you are trying not to spend a fortune. There are a couple stores that have 12-13,000 unique lots like Sajmon's (sp?) or the one in Portugal but their prices are usually astronomical but they have tons of stuff.
  • NeilCrosbyNeilCrosby United KingdomMember Posts: 77

    I agree that the desired behavior should be similar to BrickLink itself as you describe. I will work on getting this in the next release.

    Thank you all for taking the time to test this!

    No - thank-you for writing the app! Seriously, it looks like it'll be fantastically useful with a couple more features under its belt. I'm definitely looking forward to seeing this app mature.
  • RotsiserMhoRotsiserMho Member Posts: 14
    I've put up links to all the old versions next to each release number in the changelog on the website if anyone is interested.

    Please vote or comment on the Trello board regarding new features! While I read all the forum posts I can, that's kind of the home base for upcoming features, bug fixes, and tracking progress.
  • madforLEGOmadforLEGO Chicagoland USMember Posts: 10,108
    A bit OT but what does BL mean by 'Alternate items' does this mean these are parts that LEGO did included in later runs of the set? Or are these parts users add becasue they could work (but does not mean LEGO packaged them into the set when sold from factory)?
    I always took it as Alternative parts work, but were not put into the box from LEGO.
  • ColoradoBricksColoradoBricks Denver, CO, USAMember Posts: 1,672
    ^ most of the alternate parts are different molds used by LEGO during the lifetime of the set. I even had different molds of a part in the same set...
  • RotsiserMhoRotsiserMho Member Posts: 14
    Brick Wizard 0.1.5 Beta is out with greatly improved international support! I hope this works for everyone. Please let me know if you spot any issues!

    New Features
    • Added support for selecting regions to ship from
      • Stores are now filtered by the selected regions
      • Country in which store is located is displayed next to the store link
    Bug Fixes
    • No longer limited to stores in the US!
    0.1.5 Beta for OS X
    0.1.5 Beta for Windows

    texaspete
  • Tevans333Tevans333 Member Posts: 152
    Giving this a try now. I've been using the Matlab scripts extensively since they came out and love them. This seems much faster and easier to use, and produces the same results:)

    My only feature request at this time is how it handles the number of store combinations. Instead of choosing the number before running, why not have it start at 1 and if no combinations found, then move onto 2 etc. Once a combination is found, ask the user to end or continue on with more combinations?
  • Tevans333Tevans333 Member Posts: 152
    Ran the test file fine, but it is hanging while running a BrickStock file with only 24 lots. Been pruning stores for an hour and cpu usage is at 1%. Running version 0.1.5 on windows 7 64bit.
  • graphitegraphite USMember Posts: 3,270
    If you run multiple iterations or have a larger list it is nice to be able to start it at the number of combinations you know you want or that will work. For most of the lists I run I know it is highly unlikely 3 stores are going to have them for a decent price so I almost always start with 4.
  • Bosstone100Bosstone100 USAMember Posts: 1,434
    @Tevans333 - I just ran a 24 lot file and it ran fine but I used Brickstore to create it. It shouldn't make a difference but I've found Brickstock to be a bit flaky. Try opening the file in Brickstore and saving it again. Then try running it.

    Just a thought.
  • Tevans333Tevans333 Member Posts: 152
    @Bosstone100‌ thanks for the idea. I gave it a try and no luck. I downloaded the previous version 0.1.4 just now and tried the exact same list and it worked perfectly...
  • graphitegraphite USMember Posts: 3,270
    @Bosstone100 if you find issues like that with Brickstore in the future feel free to save the non working Brickstock file and the working converted version from Brickstore and send me a message. I'll look into it and add the bug to Patrick's bug tracking, or you can contact him if you want.
  • Bosstone100Bosstone100 USAMember Posts: 1,434
  • Bosstone100Bosstone100 USAMember Posts: 1,434
    @graphite‌ - (sorry. Edit didn't work) I'll be sure to do that. I know one thing I wanted to bring up (in Brickstock and Brickstore) was difference mode. I can't remember what was subtracted from what but now if you change the Difference column, it also changes the Qty column (or vice versa) and the qnty. orig column does nothing. It'd be nice to see the original set quantity, then also see how many I still need.

    Then, Brick Wizard or atxdad's scripts being able to search only for the quantity I still need. Does that make sense?
  • RotsiserMhoRotsiserMho Member Posts: 14
    edited September 2014
    Tevans333 said:

    Ran the test file fine, but it is hanging while running a BrickStock file with only 24 lots. Been pruning stores for an hour and cpu usage is at 1%. Running version 0.1.5 on windows 7 64bit.

    @Tevans333‌ I'm sorry to hear you waited so long! Any chance you can email me the file you're having a problem with? Email address is listed at the bottom of the Brick Wizard website. Alternatively you can post it on the Trello board. Thanks!
Sign In or Register to comment.

Shopping at LEGO.com or Amazon?

Please use our links: LEGO.com Amazon

Recent discussions Categories Privacy Policy Brickset.com

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Brickset.com is a participant in the Amazon Services LLC Associates Program, the Amazon.com.ca, Inc. Associates Program and the Amazon EU Associates Programme, which are affiliate advertising programs designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.

As an Amazon Associate we earn from qualifying purchases.