Browse IKEA's catalog of furniture, and import the 3D models used on their website into Blender with a single click.
Note that unfortunately, not all products on ikea's website have a 3D model; currently the only way to know from within the add-on is to click the "import" button and see whether it works or whether you get a 404...
Mesh
es and we want to move all of them; sometimes an Empty
with several Mesh
children in which case we only want to move the parent)This extension requests the following permissions:
Store downloaded models
Download from ikea.com
Do not include the name "Blender" in your extension. Do not use the Blender logo or icon in the extension thumbnail, icon or gallery. When in doubt, consult the Blender logo guidelines.
Hey everyone,
Just a heads-up about a recent change regarding the licensing of add-ons on the Blender extension platform. Moving forward, all add-ons will need to be released under the GNU/GPL 3.0 license (SPDX:GPL-3.0-or-later). This is mainly to keep things simple and consistent across the board.
Previously, we accepted various licenses as long as they were compatible with Blender’s distribution. However, to avoid any confusion and streamline the process, all add-ons using the bpy API should now be presented as GPL 3 (the same license the Blender bundle is distributed). Regardless of whether the original code was under GPL 2, or something else like MIT or ZLIB.
Existing add-ons versions won't be affected. However, new updates will need to comply to the revised requirements.
Thanks for understanding, and feel free to reach out if you have any questions.
Where are imported objects stored on the disk? I couldn't find them (on unsaved .blend file)
@dfelinto I haven't seen any explicit position from IKEA re: third-party integrations with their website, but it seems there are a handful of tools on github that have been around for a few years making use of these APIs (mostly product search / stock-checking / bargain-hunting -- I haven't yet found any other third-party software making use of the 3D models API; the only references there are a few comments in various forums of people explaining how to download the models "manually" (ie visit the web page in a browser and then pull them out of the browser's network log))
By the way, I was trying to find this information as well, and what I found is that there are even better ways to get the files nowadays.
I found furnitures (e.g., Stockholm Salontafel) which I can find the .glb on the page source code, but this extension gives a 404 when trying to import.
Maybe it is a matter of the ikea pypy wheel to update their database. This is worth checking because you may be building an add-on on top of an API which is not get so up-to-date.
Alternatively you could try to fallback to the glb method when the usd method fails.
Interesting - I think the failure is a layer above that though (ie normally there is a .json file full of model metadata, and that file gives us both a .usd URL and a .glb URL to choose from - but in this case, the .json itself is missing. But the webpage still manages to find a model somewhere, so I wonder where it is pulling that from...) - I've filed that as a bug report for further investigation - https://github.com/shish/blender-ikea-browser/issues/7
(I think I might actually skip the ikea python library completely - making direct HTTP requests to https://web-api.ikea.com appears to be both simpler and more up-to-date ^^)
I'll mark this as Awaiting Changes until you work on this, just to clear out approval Queue
I've dropped the python library which calls old APIs and replaced it with directly calling new APIs; which also happens to have a large library of GLB models as opposed to a small library of USD models.
For code reviewers: ikea_lib.py
contains all of the ikea-specific stuff, __init__.py
contains all the blender-specific stuff; ikea_lib.py
can be run as a stand-alone python script if you want to play around with it and search for / download models into the current working directory.
There are still some products that don't have models, which give a "this product has no model" error when you click "import", but I don't think that's a blocker (and the problem is more of a UX / netiquette issue than a technical one - we can't know which products have models without spamming the API with a separate request for every item in the search results list; and even if we do make a ton of extra API calls, I'm not enough of a UI designer to know what to do with that information)
I think we can accept the extension, and comply to any requests from IKEA if they reach out. If the extension was navigating the site it would be okay, and its current versio is basically doing:
Given that the main use is for archiviz using IKEA models which may ended up being ordered I think it is a win-win.
Sign in to comment.
Ready for review