[2.80] Lily Surface Scraper: Import material from a simple URL

Yes the materials already available can be used. I mean looking for new URL’s of materials. For example “https://freepbr.com/materials/scuffed-copper-pbr-metal-material/” How do I know which URL’s are compatible with the addon? if there was a dropdow field it would make it easier to access.

May I point out http://3dtextures.me/?

1 Like

Hi @aryeramaty I may work on 3dtextures eventually, but it is a bit more tedious since they host the maps on google drive, which relies on javascript running in the browser…

Small update: https://github.com/eliemichel/LilySurfaceScrapper/releases/tag/v1.1.3
The previous versions no longer worked because of an API change in Blender 2.80.

@mink, you are a hero!
This is the most convenient way to get textures / materials into Blender. It is better than downloading a big library somewhere. Besides you can import easily materials, you can now also build up a material library with consitancy. I made a video on how to do that, together with an introduction of your addon: https://blender-addons.org/lily-surface-scrapper-addon/

In case forum members don’t like I provide this link, let me know, I will then remove it. I found it enough related to the Lily Surface Scrapper addon.


1 Like

Gives an error message. What should I do? Windows 10

Same error as TexTools when you select another language than english.
Make sure the “New Data” option is unchecked on the translation preferences.

1 Like

Works! Thank you so much !!!

@CansecoGPC @Djusi good catch, thanks for reporting this, I cannot fix it at the moment bu openned an issue to remember it:

1 Like

There is bpy_extras.node_shader_utils now on the API with things like PrincipledBSDFWrapper that could help in this case.


1 Like

I downloaded and installed the way it said. I checked the box in addons , saved preferences and refreshed but it says i need to save the surface scrapper where it shoud say import surface


@Mink I get an error enabling the addon - please have a look on the console log below.
I’m on Linux machine.


Traceback (most recent call last):
File “/home/user/Applications/E_cycles_2.80_finale_lin/2.80/scripts/modules/addon_utils.py”, line 351, in enable
mod = import(module_name)
File “/home/user/.config/blender/2.80/scripts/addons/LilySurfaceScrapper/init.py”, line 36, in
from . import frontend
File “/home/user/.config/blender/2.80/scripts/addons/LilySurfaceScrapper/frontend.py”, line 26, in
from .CyclesMaterialData import CyclesMaterialData
File “/home/user/.config/blender/2.80/scripts/addons/LilySurfaceScrapper/CyclesMaterialData.py”, line 27, in
from .MaterialData import MaterialData
File “/home/user/.config/blender/2.80/scripts/addons/LilySurfaceScrapper/MaterialData.py”, line 26, in
from .Scrappers.AbstractScrapper import AbstractScrapper
File “/home/user/.config/blender/2.80/scripts/addons/LilySurfaceScrapper/Scrappers/AbstractScrapper.py”, line 30, in
from lxml import etree
ImportError: cannot import name ‘etree’ from ‘lxml’ (/home/user/.config/blender/2.80/scripts/addons/LilySurfaceScrapper/site-packages/lxml/init.py)

@Mink Are you going to answer my post? It keeps telling me i need to save the lilly surface scrapper when i have done so. It won’t work. Just like in the pic i posted in my first post.

This is really cool addon. I made some of my own hacks and merged another pull request that fixes cc0textures import.

  • Removed all binaries and install lxml through pip instead
  • Can now directly clone to Blender addon folder for easier modification and management (for my purposes)

CGbookcase scraper doesn’t seem to be currently working.

Now… if somebody

  • Made a Firefox addon that you can just press a button and copy a material to Blender. This could be easily achieved through a pipe that simply sends the URL to Blender addon I’m guessing

The possibilities :slight_smile:

@ambi do you know how to save the lilly scrapper file? I went ot the github link and is says i need to save the file but it don’t tell me how too. Thnks

You just need to save your .blend file into some directory so the addon knows what folder you’re using.

Thanks. that worked.

Hi @ambi,
Thanks for your contribution!

About lxml, does your setup requires any extra step when installing the add-on? I packaged it into the add-on’s archive so that people don’t have to do any sort of command line operation. I may not have completely succeeded because @blndrusr apparently ran into an error about lxml when installing, though… Anyway, I am looking for the smoothest way for people to install the add-on, especially people that don’t know anything about Python and pip and stuff. BTW, is pip package with Blender on all plateforms? (NB: I cannot try anything myself at the moment, I’m on summer break away from any computer.)

For being able to clone directly the project into your add-on directory, couldn’t you add a __init__.py file that imports blender/lilysurfacescrapper rather than moving all the files at the root of the project? I’d like to keep the root of the repo clean as far as I can.

Why did you get rid of settings.py? The texture directory might be something that people would like to change, and I like “magic” values like UNSUPPORTED_PROVIDER_ERR not to wander around anywhere in the code. It would especially be usefull for internationalization to keep them in one place.

So, thanks again, and if we are able to answer all this we should manage to merge our copies!

PIP should be available on all Blender installations. The only problem I’ve had with it is that sometimes I need to restart Blender to enable the library. If that issue can be solved, the installation will be completely seamless, outside having to wait for the libraries to download. I think it’s still better than binaries.

You’re right that the init.py should be at the root and all other files neatly in subfolders. It was just a quick fix to get the Git folder into easily editable format in the Blender addon root. I don’t think (again in my humble opinion) extra folders are necessary, as the addon folder is already LilySurfaceScrapper.

I got rid of settings.py because of how Python imports work. JSON will be better (IMHO) as it’s outside Python import structure. Blender Python keeps running constantly, so any settings .py file would need a manual reload each time it’s changed.

These are all my opinions, which may have better solutions and you are free to pick what you want to use and what not.

1 Like

I just released a new minor version with the most urgent bug fixes, especially the one reported by @CansecoGPC and @Djusi. It also includes the update of the CC0Textures scrapper from @alisherks.

I don’t forget your work @ambi I’ll address it in the next release. :wink: