{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Exploration of 3D Indoor Scenes Datasets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Install panda3d and ursina engines that may be useful for exploration then."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"hideCode": true,
"hideOutput": true,
"hidePrompt": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.\n",
"Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.\n",
"To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: panda3d in /opt/conda/lib/python3.6/site-packages (1.10.6.post2)\n",
"Requirement already satisfied: ursina in /opt/conda/lib/python3.6/site-packages (3.0.0)\n",
"Requirement already satisfied: panda3d in /opt/conda/lib/python3.6/site-packages (from ursina) (1.10.6.post2)\n",
"Requirement already satisfied: pillow in /opt/conda/lib/python3.6/site-packages (from ursina) (7.0.0)\n",
"Requirement already satisfied: screeninfo in /opt/conda/lib/python3.6/site-packages (from ursina) (0.6.5)\n",
"Requirement already satisfied: dataclasses in /opt/conda/lib/python3.6/site-packages (from screeninfo->ursina) (0.7)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.\n",
"Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.\n",
"To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: ipyvolume in /opt/conda/lib/python3.6/site-packages (0.5.2)\n",
"Requirement already satisfied: traittypes in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (0.2.1)\n",
"Requirement already satisfied: Pillow in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (7.0.0)\n",
"Requirement already satisfied: traitlets in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (4.3.3)\n",
"Requirement already satisfied: pythreejs>=1.0.0 in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (2.2.0)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.\n",
"Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.\n",
"To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: ipywebrtc in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (0.5.0)\n",
"Requirement already satisfied: requests in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (2.23.0)\n",
"Requirement already satisfied: numpy in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (1.15.2)\n",
"Requirement already satisfied: ipywidgets>=7.5 in /opt/conda/lib/python3.6/site-packages (from ipyvolume) (7.5.1)\n",
"Requirement already satisfied: ipython-genutils in /opt/conda/lib/python3.6/site-packages (from traitlets->ipyvolume) (0.2.0)\n",
"Requirement already satisfied: decorator in /opt/conda/lib/python3.6/site-packages (from traitlets->ipyvolume) (4.4.1)\n",
"Requirement already satisfied: six in /opt/conda/lib/python3.6/site-packages (from traitlets->ipyvolume) (1.14.0)\n",
"Requirement already satisfied: ipydatawidgets>=1.1.1 in /opt/conda/lib/python3.6/site-packages (from pythreejs>=1.0.0->ipyvolume) (4.0.1)\n",
"Requirement already satisfied: idna<3,>=2.5 in /opt/conda/lib/python3.6/site-packages (from requests->ipyvolume) (2.9)\n",
"Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/lib/python3.6/site-packages (from requests->ipyvolume) (3.0.4)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.6/site-packages (from requests->ipyvolume) (1.25.7)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.6/site-packages (from requests->ipyvolume) (2020.4.5.1)\n",
"Requirement already satisfied: ipython>=4.0.0; python_version >= \"3.3\" in /opt/conda/lib/python3.6/site-packages (from ipywidgets>=7.5->ipyvolume) (7.12.0)\n",
"Requirement already satisfied: widgetsnbextension~=3.5.0 in /opt/conda/lib/python3.6/site-packages (from ipywidgets>=7.5->ipyvolume) (3.5.1)\n",
"Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.6/site-packages (from ipywidgets>=7.5->ipyvolume) (5.0.4)\n",
"Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.6/site-packages (from ipywidgets>=7.5->ipyvolume) (5.1.4)\n",
"Requirement already satisfied: backcall in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.1.0)\n",
"Requirement already satisfied: pexpect; sys_platform != \"win32\" in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (4.8.0)\n",
"Requirement already satisfied: setuptools>=18.5 in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (45.2.0.post20200209)\n",
"Requirement already satisfied: jedi>=0.10 in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.16.0)\n",
"Requirement already satisfied: pygments in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (2.5.2)\n",
"Requirement already satisfied: pickleshare in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.7.5)\n",
"Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (3.0.3)\n",
"Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.6/site-packages (from widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (6.0.3)\n",
"Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets>=7.5->ipyvolume) (3.0.2)\n",
"Requirement already satisfied: jupyter-core in /opt/conda/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets>=7.5->ipyvolume) (4.6.3)\n",
"Requirement already satisfied: jupyter-client in /opt/conda/lib/python3.6/site-packages (from ipykernel>=4.5.1->ipywidgets>=7.5->ipyvolume) (6.0.0)\n",
"Requirement already satisfied: tornado>=4.2 in /opt/conda/lib/python3.6/site-packages (from ipykernel>=4.5.1->ipywidgets>=7.5->ipyvolume) (6.0.3)\n",
"Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.6/site-packages (from pexpect; sys_platform != \"win32\"->ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.6.0)\n",
"Requirement already satisfied: parso>=0.5.2 in /opt/conda/lib/python3.6/site-packages (from jedi>=0.10->ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.6.0)\n",
"Requirement already satisfied: wcwidth in /opt/conda/lib/python3.6/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0; python_version >= \"3.3\"->ipywidgets>=7.5->ipyvolume) (0.1.8)\n",
"Requirement already satisfied: nbconvert in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (5.6.1)\n",
"Requirement already satisfied: terminado>=0.8.1 in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.8.3)\n",
"Requirement already satisfied: Send2Trash in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (1.5.0)\n",
"Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.7.1)\n",
"Requirement already satisfied: jinja2 in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (2.11.0)\n",
"Requirement already satisfied: pyzmq>=17 in /opt/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (17.1.2)\n",
"Requirement already satisfied: pyrsistent>=0.14.0 in /opt/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7.5->ipyvolume) (0.15.7)\n",
"Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.6/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets>=7.5->ipyvolume) (19.3.0)\n",
"Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/lib/python3.6/site-packages (from jupyter-client->ipykernel>=4.5.1->ipywidgets>=7.5->ipyvolume) (2.8.1)\n",
"Requirement already satisfied: bleach in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (3.1.0)\n",
"Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (1.4.2)\n",
"Requirement already satisfied: testpath in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.4.4)\n",
"Requirement already satisfied: entrypoints>=0.2.2 in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.3)\n",
"Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.8.4)\n",
"Requirement already satisfied: defusedxml in /opt/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.6.0)\n",
"Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/lib/python3.6/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (1.1.1)\n",
"Requirement already satisfied: webencodings in /opt/conda/lib/python3.6/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.5.0->ipywidgets>=7.5->ipyvolume) (0.5.1)\n"
]
}
],
"source": [
"import pip\n",
"\n",
"def install(package):\n",
" if hasattr(pip, 'main'):\n",
" pip.main(['install', package])\n",
" else:\n",
" pip._internal.main(['install', package])\n",
"\n",
"# Example\n",
"if __name__ == '__main__':\n",
" install('panda3d')\n",
" install('ursina')\n",
" install('ipyvolume')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Explore SceneNN scene"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copy minimalist scene data as string \"sample_scene_data\""
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"hideCode": true,
"hideOutput": true,
"hidePrompt": false
},
"outputs": [],
"source": [
"sample_scene_data = \"\"\"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\"\"\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Load scene data as xml tree element"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"from xml.etree import ElementTree\n",
"scene_root = ElementTree.fromstring(sample_scene_data)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.mplot3d import Axes3D, axes3d\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"X, Y, Z = axes3d.get_test_data(1.)\n",
"ax.plot_wireframe(X, Y, Z) #, rstride=10, cstride=10)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Hide code",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}