allenai / procthor

🏘️ Scaling Embodied AI by Procedurally Generating Interactive 3D Houses
https://procthor.allenai.org/
Apache License 2.0
241 stars 20 forks source link

"Unable to CreateHouse!" Error when running example.py #31

Open nicholscrawford opened 1 year ago

nicholscrawford commented 1 year ago
Unable to CreateHouse!
  File "/home/nichols/mambaforge/envs/ll4ma/lib/python3.8/site-packages/procthor/generation/small_objects.py", line 85, in add_small_objects
    assert event, "Unable to CreateHouse!"
  File "/home/nichols/mambaforge/envs/ll4ma/lib/python3.8/site-packages/procthor/generation/__init__.py", line 209, in sample
    add_small_objects(
  File "/home/nichols/code/procthor/scripts/example.py", line 6, in <module>
    house, _ = house_generator.sample()
  File "/home/nichols/mambaforge/envs/ll4ma/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/nichols/mambaforge/envs/ll4ma/lib/python3.8/runpy.py", line 194, in _run_module_as_main (Current frame)
    return _run_code(code, main_globals, None,
AssertionError: Unable to CreateHouse!

Followed the procthor readme.md. Getting this error when running. I'm hoping to export these asset arrangements to another simulation engine. Running in a conda environment on ubuntu 20.

nicholscrawford commented 1 year ago

Found this error message when hunting through a bit

'Newtonsoft.Json.JsonSerializationException: Error converting value "Cream_wood" to type \'Thor.Procedural.Data.MaterialProperties\'. Path \'house.rooms[0].floorMaterial\'. ---> System.ArgumentException: Could not cast or convert from System.String to Thor.Procedural.Data.MaterialProperties.\n  at Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable (System.Object value, System.Type initialType, System.Type targetType) [0x00067] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast (System.Object initialValue, System.Globalization.CultureInfo culture, System.Type targetType) [0x00036] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType (Newtonsoft.Json.JsonReader reader, System.Object value, System.Globalization.CultureInfo culture, Newtonsoft.Json.Serialization.JsonContract contract, System.Type targetType) [0x00117] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n   --- End of inner exception stack trace ---\n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType (Newtonsoft.Json.JsonReader reader, System.Object value, System.Globalization.CultureInfo culture, Newtonsoft.Json.Serialization.JsonContract contract, System.Type targetType) [0x00149] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x000dc] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, System.Object target) [0x00069] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00266] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x00161] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList (System.Collections.IList list, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonArrayContract contract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, System.String id) [0x00173] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x001c4] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0007f] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, System.Object target) [0x00069] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00266] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x00161] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000db] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00054] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Linq.JToken.ToObject (System.Type objectType, Newtonsoft.Json.JsonSerializer jsonSerializer) [0x00012] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at Newtonsoft.Json.Linq.JToken.ToObject (System.Type objectType) [0x002ff] in <f2d82e1ac3694e6399a979c083d80d79>:0 \n  at ActionDispatcher.Dispatch (System.Object target, DynamicServerAction dynamicServerAction) [0x00180] in <688391d437854f3da453f64e1df76e9d>:0 \n  at UnityStandardAssets.Characters.FirstPerson.BaseFPSAgentController.ProcessControlCommand (DynamicServerAction controlCommand, System.Object target) [0x0007d] in <688391d437854f3da453f64e1df76e9d>:0 '
Lucaweihs commented 1 year ago

Hi @nicholscrawford, which version of AI2-THOR do you have installed?

RajeshDM commented 8 months ago

@Lucaweihs

What is the minimum version of AI2-Thor required to use PROC-Thor?

Also is it possible to use, say AI2Thor 5.0.0 for room generation but then load up these generated scenes in an older version of AI2Thor (for example version 3.3.4)?