xjorma / earthmeshhoudini Goto Github PK
View Code? Open in Web Editor NEWGenerate real world meshes in Houdini using the Google API.
License: Apache License 2.0
Generate real world meshes in Houdini using the Google API.
License: Apache License 2.0
Hello there,
Thanks for the effort on what seems to be a very useful and welcomed tool
Would like to get this working if possible on linux.
Best regards!
On initial use i get this error message on the sop node:
<style type="text/css"> p, li { white-space: pre-wrap; } </style>Error | Invalid source /obj/geo1/EarthMesh1/FindAltitudeError: Python error: Traceback (most recent call last):File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 1346, in do_openh.request(req.get_method(), req.selector, req.data, headers,File "/opt/hfs19.5.716/python/lib/python3.9/http/client.py", line 1285, in requestself._send_request(method, url, body, headers, encode_chunked)File "/opt/hfs19.5.716/python/lib/python3.9/http/client.py", line 1331, in _send_requestself.endheaders(body, encode_chunked=encode_chunked)File "/opt/hfs19.5.716/python/lib/python3.9/http/client.py", line 1280, in endheadersself._send_output(message_body, encode_chunked=encode_chunked)File "/opt/hfs19.5.716/python/lib/python3.9/http/client.py", line 1040, in _send_outputself.send(msg)File "/opt/hfs19.5.716/python/lib/python3.9/http/client.py", line 980, in sendself.connect()File "/opt/hfs19.5.716/python/lib/python3.9/http/client.py", line 1454, in connectself.sock = self._context.wrap_socket(self.sock,File "/opt/hfs19.5.716/python/lib/python3.9/ssl.py", line 500, in wrap_socketreturn self.sslsocket_class._create(File "/opt/hfs19.5.716/python/lib/python3.9/ssl.py", line 1040, in _createself.do_handshake()File "/opt/hfs19.5.716/python/lib/python3.9/ssl.py", line 1309, in do_handshakeself._sslobj.do_handshake()ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)During handling of the above exception, another exception occurred:Traceback (most recent call last):File "", line 42, in File "", line 16, in get_elevationFile "", line 5, in bytes_from_urlFile "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 214, in urlopenreturn opener.open(url, data, timeout)File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 517, in openresponse = self._open(req, data)File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 534, in _openresult = self._call_chain(self.handle_open, protocol, protocol +File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 494, in _call_chainresult = func(*args)File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 1389, in https_openreturn self.do_open(http.client.HTTPSConnection, req,File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 1349, in do_openraise URLError(err)urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)>. |
---|
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 42, in
File "", line 16, in get_elevation
File "", line 5, in bytes_from_url
File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 214, in urlopen
return opener.open(url, data, timeout)
File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 517, in open
response = self._open(req, data)
File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 534, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 494, in _call_chain
result = func(*args)
File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 1389, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "/opt/hfs19.5.716/python/lib/python3.9/urllib/request.py", line 1349, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)>
.
I followed the instructions, including setting up my Google Maps Elevation API, and installing the python libraries.
I tested the API and confirmed that it's working via web requests.
However, when I try to use the EarthMesh HDA, I get the following errors:
Houdini Terminal where I launch Houdini from the command line:
Failed to connect to Elevation API, defaulting to zero.
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)>
failed to connect to geographiclib.sourceforge.io, defaulting to zero.
Here are the errors I get in the EarthMesh node:
Invalid source /obj/geo1/EarthMesh1/3D_Tiles.
(Error: Python error: Traceback (most recent call last):
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 1348, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 1294, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 1340, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 1289, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 1048, in _send_output
self.send(msg)
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 986, in send
self.connect()
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 1466, in connect
self.sock = self._context.wrap_socket(self.sock,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py", line 517, in wrap_socket
return self.sslsocket_class._create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py", line 1108, in _create
self.do_handshake()
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/ssl.py", line 1383, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 141, in
File "", line 19, in bytes_from_url
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 216, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 519, in open
response = self._open(req, data)
^^^^^^^^^^^^^^^^^^^^^
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 536, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 496, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 1391, in https_open
return self.do_open(http.client.HTTPSConnection, req,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Applications/Houdini/Houdini20.5.278/Frameworks/Python.framework/Versions/3.11/lib/python3.11/urllib/request.py", line 1351, in do_open
raise URLError(err)
urllib.error.URLError:
).
What am I missing? Here is my Houdini setup.
Houdini 20.5.278 - Py3.11
OS: MacOS Sonoma 14.1
Hardware: MacBook Pro M1 (2021)
Hello, There is any possibility to bake all textures in one, for export it to another application and do not have a thousandth materials?
I am experiencing issues with the EarthMesh HDA in Houdini Apprentice 19.5.795 on macOS 13.6 and am seeking assistance to resolve these.
Environment Details:
Houdini Version: Houdini Apprentice 19.5.795 (Non-Commercial)
Operating System: macOS 13.6
EarthMesh Version: Downloaded on November 15th, 2023 (specific version number not mentioned, please insert if available)
Issue Description:
Upon adding the EarthMesh node to my scene in Houdini (and entering the API code), the node text appears in red, indicating an error. I have followed the installation and setup instructions accurately, but the issue persists.
`
<style type="text/css"> p, li { white-space: pre-wrap; } </style>Error | Python error: Traceback (most recent call last):File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1346, in do_openh.request(req.get_method(), req.selector, req.data, headers,File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1285, in requestself._send_request(method, url, body, headers, encode_chunked)File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1331, in _send_requestself.endheaders(body, encode_chunked=encode_chunked)File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1280, in endheadersself._send_output(message_body, encode_chunked=encode_chunked)File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1040, in _send_outputself.send(msg)File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 980, in sendself.connect()File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/http/client.py", line 1454, in connectself.sock = self._context.wrap_socket(self.sock,File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 500, in wrap_socketreturn self.sslsocket_class._create(File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1040, in _createself.do_handshake()File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/ssl.py", line 1309, in do_handshakeself._sslobj.do_handshake()ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)During handling of the above exception, another exception occurred:Traceback (most recent call last):File "", line 133, in File "", line 11, in bytes_from_urlFile "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 214, in urlopenreturn opener.open(url, data, timeout)File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 517, in openresponse = self._open(req, data)File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 534, in _openresult = self._call_chain(self.handle_open, protocol, protocol +File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 494, in _call_chainresult = func(*args)File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1389, in https_openreturn self.do_open(http.client.HTTPSConnection, req,File "/Applications/Houdini/Houdini19.5.795/Frameworks/Python.framework/Versions/3.9/lib/python3.9/urllib/request.py", line 1349, in do_openraise URLError(err)urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1129)> |
---|
Steps Taken:
Installed the EarthMesh HDA as per the provided guidelines.
Configured a Google Cloud Account with the necessary APIs (Map Tiles API, Maps Elevation API).
Installed additional Python packages (pygltflib and DracoPy) as directed in the documentation.
Meticulously set up all parameters within the EarthMesh node as recommended.
Despite these efforts, the node continues to show an error.
Specific Inquiries:
Compatibility: Is there known compatibility of EarthMesh with Houdini Apprentice version 19.5.795 and macOS 13.6? If compatibility issues are known, could you suggest the optimal version of Houdini for use with EarthMesh?
Troubleshooting: Are there common issues or specific troubleshooting steps for EarthMesh in this environment that I might have missed?
Error Logs: What specific logs or error messages should I look for within Houdini to better understand this issue?
Hello Earthmesh Community
I wanted to share my solution for getting Earthmesh to render. My example uses Vray but I have tried it in Redshift (not using Krama though)
Feel free to try it out. If anyone creates the solution for Karma please post it here as well. I might get try to get around to that at some point.
I have a question about mesh resolution. I have done a bunch of testing with various parameters. I understand that 2 is presently the best definition. I wonder if Google does not make public the highest resolution as the mesh does appear to have more detail in Google Earth than what we get in Houdini with Earthmesh (see attached image), is that the case?
On another note I wondered if it was not more optimal to perform some kind of culling before downloading meshes? It does download the entire planet albeit in low resolution which is aweome in some use cases but most of the time its not such a large area that is required. Using box clip and caching works but seems to be an opportunity to reduce the volume of processing.
As always I would like to express my appreciation to David for creating this super useful resource. I wish I had some pyhton skills so I could contribute more substatially.
I am getting this error when increasing the min dist and max mesh.
The same coordinates worked with 500 min dist and 5000 max mesh. When I increased to 1500 min dist and 15000 max mesh I get this error.
Error
Invalid source /obj/geo1/EarthMesh1/Glb.
(Error: Python error: Traceback (most recent call last):
File "", line 66, in
KeyError: 'KHR_draco_mesh_compression'
).
I am using @joreeves implementation
Hello! I tried the new version and cannot merge the exported textures without the shader used in houdini. I thought it would use something like material IDs but the UVs are overlapped. My goal is to eventually have it in Unreal.
Also noticed you work in Montreal! That explains the stadium. Funny concidence, that is where I am located as well at a company called Provencher Roy and we are trying to migrate from the renderdoc/blender pipeline as it is quite unreliable compared to yours. I just cannot use it outside Houdini at the moment.
Thanks again for working on this script on your spare time!
I asked a previous question concerning the exporting in Apprentice mode. I would like to know if it's possible to export it with a commercial license. Maybe it would be less trouble than trying to make a script just to export which apprentice mode shouldn't really be doing in the first place. Thank you!
Hello! Tried the new version and I only get a white material while old version still works.
The log would mention that it could not find some local files.
Hello again! I managed to create a map with the new version and it does work! I tried doing the .obj export since apprentice does not export fbx files and the UVs aren't good on 3DS max. Do you have a fix for that? I heard Houdini has a different UV system. Thank you very much for the quick help!
Hi All,
First a thank you to Daniel for an amazing tool.
I recently returned to a file using Earthmesh and it is no longer working. Preiously I had it working great, even managed to figure out rendering textures in Redshift and Vray. I have the geometry cached so luckily I can still use the mesh but going forward I will not be able to create new scenes. As I have not changed anything I suspect the error must be coming from the Google API side, has anyone else experienced this?
I notice that the downloading stops early, only glb files and json, no jpeg texture files get downloaded.
Screeshot of error message on Pyhton Node
Any insight advice or help is appreciated?
Is it an API issue? Or Python version issue? Or Houdini version issue?
In the documentation, you have:
Type hython -m pip install pygltflib to install the pygltflib.
Type hython -m pip install DracoPy to install DracoPy.
Please remove the "." from the end of each line.
When people copy and paste the command, it's easy to forget to delete the ".", then you get the error:
ERROR: Invalid requirement: 'DracoPy.'
Thanks
I do get an error message on the earthmesh node (i gave my google api key & cache folder + python libraries installed & lab)
I m on windows, with houdini 19.5.493 py3.9
I would like to now which version of houdini should we pick to get the same setup as you
"
Error
Invalid source /obj/geo1/EarthMesh1/3D_Tiles
Error: Python error: Traceback (most recent call last):
File "", line 126, in
File "", line 11, in bytes_from_url
File "C:\PROGRA1\SIDEEF1\HOUDIN1.493\python39\lib\urllib\request.py", line 214, in urlopen1\SIDEEF
return opener.open(url, data, timeout)
File "C:\PROGRA1\HOUDIN1.493\python39\lib\urllib\request.py", line 523, in open
response = meth(req, response)
File "C:\PROGRA1\SIDEEF1\HOUDIN1.493\python39\lib\urllib\request.py", line 632, in http_response1\SIDEEF
response = self.parent.error(
File "C:\PROGRA1\HOUDIN1.493\python39\lib\urllib\request.py", line 561, in error
return self._call_chain(*args)
File "C:\PROGRA1\SIDEEF1\HOUDIN1.493\python39\lib\urllib\request.py", line 494, in _call_chain1\SIDEEF
result = func(*args)
File "C:\PROGRA1\HOUDIN1.493\python39\lib\urllib\request.py", line 641, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
.
"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.