{
"cells": [
{
"cell_type": "markdown",
"id": "36095417-3681-4329-9c25-b71583a3e3f6",
"metadata": {
"id": "36095417-3681-4329-9c25-b71583a3e3f6"
},
"source": [
"# Implicit representation for mesh reconstruction with Point Clouds"
]
},
{
"cell_type": "markdown",
"id": "a5d63547-7405-43ad-8997-b28f05ece806",
"metadata": {
"id": "a5d63547-7405-43ad-8997-b28f05ece806"
},
"source": [
"In this lab work we will reconstruct shapes from point sets with and without their normal information.\n",
"Each network/method will output the distance or signed distance and one can extract the surface with Marching\n",
"cubes, following these steps :\n",
"- Use the trained network to compute the values of the signed distance on a grid\n",
"- Extract the 0 levelset (marching_cubes method of the mcubes library)\n",
"- Save/visualize the mesh (export_obj method of the mcubes library)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "JVRLjO_fVErO",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "JVRLjO_fVErO",
"outputId": "0b3fe686-8d46-42cf-f455-6045587bcf09"
},
"outputs": [],
"source": [
"!pip install potpourri3d\n",
"!pip install git+https://github.com/skoch9/meshplot.git\n",
"!pip install pythreejs\n",
"!pip install pymcubes"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "MLP07KHSWRb4",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "MLP07KHSWRb4",
"outputId": "94f19940-0cee-495a-e4a4-717469d3a23b"
},
"outputs": [],
"source": [
"!wget https://www.lix.polytechnique.fr/~pierson/cours/tp_sdf_material.zip"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "KWAxPUK2VLj0",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "KWAxPUK2VLj0",
"outputId": "602d9c89-77dd-43c3-c4cd-238fabd8e771"
},
"outputs": [],
"source": [
"!unzip -o tp_sdf_material.zip\n",
"!ls"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e0c895ab-6aac-49b9-bf78-026b2c1b4740",
"metadata": {
"id": "e0c895ab-6aac-49b9-bf78-026b2c1b4740"
},
"outputs": [],
"source": [
"from google.colab import output\n",
"output.enable_custom_widget_manager()\n",
"\n",
"import numpy as np\n",
"import mcubes\n",
"import plot_utils as plu\n",
"from mesh_utils.mesh import TriMesh\n",
"import torch\n",
"import torch.nn as nn\n",
"import torch.nn.functional as F\n",
"from tqdm.auto import tqdm\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"id": "adb369d0",
"metadata": {
"id": "adb369d0"
},
"source": [
"# Traditional reconstruction approach\n",
"This method is a \"historical\" method (link) for reconstructing a surface from a set of points. It consists in taking an oriented point cloud $(x_i , n_i )$, and estimating for any arbitrary point $x$ in the ambient space a signed distance function as : $u(x) = ± min_i ∥x_i − x∥$\n",
"\n",
"The sign is given by the sign of the scalar product $\\langle x - x_i, n_i \\rangle$.\n",
"\n",
"The original method starts with unoriented point clouds and devises a clever way to estimate the normal direction and their orientation. Here, for simplicity, we start with oriented points."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "545ae05c-32fb-4d95-9053-28472362e908",
"metadata": {
"id": "545ae05c-32fb-4d95-9053-28472362e908"
},
"outputs": [],
"source": [
"def get_pc(path):\n",
" ## Load the oriented point set. You can use the function np.loadtxt\n",
" return point_cloud, normals"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "96a97e2b-5b8b-4b42-b1cb-69d46aa13a46",
"metadata": {
"id": "96a97e2b-5b8b-4b42-b1cb-69d46aa13a46"
},
"outputs": [],
"source": [
"pc, normals = get_pc(\"armadillo_sub.xyz\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c69237d8-6698-4181-8ca8-bd59348dbd93",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 978,
"referenced_widgets": [
"a0d23a848b0149c7a86c7241181fee9b",
"21cd72c937be45ffa1aa1ecd66565055",
"85b7741de559492ea0b0ee731b808ee8",
"e18fcaef8e8f439f829be72913b09838",
"a40304a01ddc452e89133e17c21c09ab",
"ba57353533c047878b8d58e10d940aa3",
"fb0e1201299146d0907726ba0a1671b8",
"bc4b6d21503f492c9f8d785886144744",
"7c6c112f72ad4c05b603165b08978430",
"049c3d700d6e44a58fa1fb5198eb475b",
"1c81f0a67a3c42ada4b4f7ba51004c20",
"bf4c052432734190aaafdf37332d6075",
"32fcb6d5aae14d708c9257951e5b6b57"
]
},
"id": "c69237d8-6698-4181-8ca8-bd59348dbd93",
"outputId": "2f4d5da9-2211-4ac7-bf53-172e5d3efa3a"
},
"outputs": [],
"source": [
"plu.plot_pc(pc, point_size=2) #You can put cmap = normals to see normals orientation as color"
]
},
{
"cell_type": "markdown",
"id": "1d672be2-d96c-4a6f-a3f6-ea4d8d0ddfba",
"metadata": {
"id": "1d672be2-d96c-4a6f-a3f6-ea4d8d0ddfba"
},
"source": [
"The second step is to compute the sdf based on the set of points. You will first need to build a grid of points (using e.g. np.meshgrid), and then to compute the sdf to the set of points. Don't forget to adapt the limits of the grid to the size of the point cloud! For the distance, use an efficient way to compute the distance (look at solutions of previous labs to get an idea)."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7b34c02e-3384-4b88-beb6-4a05fc42b369",
"metadata": {
"id": "7b34c02e-3384-4b88-beb6-4a05fc42b369"
},
"outputs": [],
"source": [
"from scipy import spatial\n",
"\n",
"def compute_sdf(point_cloud, normals, points_query):\n",
" ## Compute SDF on points_query from the shape defined by point_cloud and normals\n",
" return sdf\n",
"\n",
"def compute_sdf_grid(point_cloud, normals, grid_size=40):\n",
" ## Compute SDF on a XYZ grid. First generate the grid (it has to enclose the point cloud)\n",
" ## Then compute the sdf\n",
" #compute the enclosing grid\n",
" \n",
"\n",
" \n",
" return sdf # shape (grid_size, grid_size, grid_size)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7501d31d-6301-4f66-a8ae-645208384e4c",
"metadata": {
"id": "7501d31d-6301-4f66-a8ae-645208384e4c"
},
"outputs": [],
"source": [
"sdf = compute_sdf_grid(pc, normals)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "31442fcb-2a9a-42ab-a1d9-41e29ce462b6",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 978,
"referenced_widgets": [
"391b74dbf597484d894f4849f0cc0373",
"73da99c3a634410489b3217005de4267",
"09afb5addb254c8eaa57ba17c4a17f6c",
"58878c7d0deb48ffa0ed8ffa8c7efb76",
"dbd12d44ada7410581f4f9a0532556ae",
"2eb48b41ecb94ef18aba4c9dce9fc3cd",
"260d4b9064bf4e7f8940f6fdb2db7e60",
"8884a15509704f418e3baf747c978f21",
"af00878bc86e4811880053a056956e85",
"7291c1b7d2ca4391958376561a2e8d51",
"c2b1122c8cd640fcb0e9c4ca80674e8f",
"4d0f56e67ff14eba9aad0fc176f4e719",
"f6ddac9617d14a3995ef687f28439061",
"6bc9b2fd29294397bfaa45ef111de96f"
]
},
"id": "31442fcb-2a9a-42ab-a1d9-41e29ce462b6",
"outputId": "a32839a4-e5a1-4c3d-8bc6-4a94be4afdad"
},
"outputs": [],
"source": [
"vertices, triangles = mcubes.marching_cubes(sdf,0)\n",
"mesh = TriMesh(vertices, triangles)\n",
"mcubes.export_obj(vertices, triangles, 'result_hoppe.obj')\n",
"plu.plot(mesh)"
]
},
{
"cell_type": "markdown",
"id": "4af67d5b-d9fa-4685-ad42-ab15d01086e2",
"metadata": {
"id": "4af67d5b-d9fa-4685-ad42-ab15d01086e2"
},
"source": [
"You can try different grid sizes, but do not increase too much its size to avoid memory issues"
]
},
{
"cell_type": "markdown",
"id": "b497b547-ce5b-4fdf-bff6-11765cba573a",
"metadata": {
"id": "b497b547-ce5b-4fdf-bff6-11765cba573a"
},
"source": [
"# DeepSDF\n",
"\n",
"This method (see link) consists of representing the SDF as a function (x, y, z) -> sdf, parameterized by a neural network.\n",
"\n",
"We first build the network according to the following figure\n",
"\n",
"\n",
"\n",
"The activations are ReLUs, except for the last one, defined as $\\phi(a) = \\text{tanh}(a)$.\n",
"\n",
"Moreover, the networks have specific initialization (**except the last one**): the weights of size $n \\times n$ are initialized according to the following $\\mathcal{N}\\left(0, \\sqrt{\\frac{2}{n}}\\right)$ law, and the bias are initalized to 0 (except for the last linear layer). You can access to a Linear layer weight, and bias via layer..weight.data, and layer.bias.data, or use nn.init on layer.weight, layer.bias"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ed7c8a12-cdc3-4220-9491-71600785abcc",
"metadata": {
"id": "ed7c8a12-cdc3-4220-9491-71600785abcc"
},
"outputs": [],
"source": [
"class SDFNet(nn.Module):\n",
" def __init__(self, ninputchannels, dropout=0.2, gamma=0, sal_init=False, eik=False):\n",
" super(SDFNet, self).__init__()\n",
" ## Prepare the layers\n",
" ## Don't forget to initialize your weights correctly.\n",
"\n",
" ## gamma, sal_init, eik are for later\n",
" self.gamma=gamma\n",
" self.eik = eik\n",
" \n",
"\n",
"\n",
" #custom weights init\n",
"\n",
" def forward(self,x):\n",
" ## Logic of the neural network\n",
" ## You can add dropout if you want\n",
" return x"
]
},
{
"cell_type": "markdown",
"id": "b0b32746-6a2c-4c25-93b1-24fbac4f7690",
"metadata": {
"id": "b0b32746-6a2c-4c25-93b1-24fbac4f7690"
},
"source": [
"### Loss function\n",
"\n",
"The loss is computed by sampling random points in the ambient space (set X), computing their ground truth SDF (using part one), and computing the distance between computed and ground truth sdf:\n",
"\n",
"$$\n",
"\\mathcal{L}(\\theta) = \\mathbb{E}_{x \\sim X} [|\\text{clamp}(u_\\theta(x), \\delta) - \\text{clamp}(\\text{SDF}_{\\text{gt}}(x), \\delta)|]\n",
"$$\n",
"\n",
"where $\\text{clamp}(x, \\delta) := \\min(\\delta, \\max(−\\delta, x))$ (you can use torch.clamp). To understand the signification of parameter $\\delta$, read carefully paragraph 3 of the paper."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ebda59ec-e59e-4b50-a2a3-bda8a3d8221a",
"metadata": {
"id": "ebda59ec-e59e-4b50-a2a3-bda8a3d8221a"
},
"outputs": [],
"source": [
"def evaluate_loss(net, pts_gt, sdf_gt, device, lpc, batch_size=2000, delta = 0.1):\n",
" ## For this function, you need to sample batch_size number of points\n",
" ## From pts_gt. Evaluate the sdf at those points and compute the loss\n",
" ## compared to sdf_gt (be careful to select the same points between pts_gt and sdf_gt)\n",
"\n",
" # Select points\n",
" \n",
"\n",
" # compute and store the losses\n",
" loss = \n",
"\n",
" # append all the losses\n",
" lpc.append(float(loss.item()))\n",
"\n",
" return loss"
]
},
{
"cell_type": "markdown",
"id": "db4de69e-a85d-4e32-b3e4-993e45ce6263",
"metadata": {
"id": "db4de69e-a85d-4e32-b3e4-993e45ce6263"
},
"source": [
"### Training the SDF"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "50183176-a41a-43a8-94fb-71f058cad8c8",
"metadata": {
"id": "50183176-a41a-43a8-94fb-71f058cad8c8"
},
"outputs": [],
"source": [
"device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
"\n",
"def get_normalized_pointcloud(point_cloud, margin=0.05):\n",
" ## Return the same point cloud, scaled such that \n",
" ## x,y,z values are between -1+margin and 1-margin\n",
" #compute the enclosing grid\n",
"\n",
" #normalize the points\n",
" return pc_normed\n",
"\n",
"def compute_gt_sdf(point_cloud, normals, n_points=1000000):\n",
" ## Sample a n_points points in with XYZ coordinates between -1 and 1\n",
" ## Then use compute_sdf to get sdf_gt\n",
"\n",
" p_norm = get_normalized_pointcloud(point_cloud, margin=0.00001)\n",
" #preparing gt points:\n",
"\n",
" gtp = \n",
" sdf_gt = compute_sdf(p_norm, normals, gtp)\n",
" return sdf_gt, gtp"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8bdd38cf-77d9-473b-9411-b221b81351b7",
"metadata": {
"id": "8bdd38cf-77d9-473b-9411-b221b81351b7"
},
"outputs": [],
"source": [
"n_points = 100000\n",
"sdf_gt, gtp = compute_gt_sdf(pc, normals, n_points)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "105ecb10-da59-4719-947f-67e6088d4cee",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "105ecb10-da59-4719-947f-67e6088d4cee",
"outputId": "fd0d150a-a54f-404c-d1d1-94c40bb2fa83"
},
"outputs": [],
"source": [
"print(device)\n",
"print(sdf_gt.shape, gtp.shape) ## Should be same shape\n",
"print(np.isclose(gtp.max(), 1, 1e-3), np.isclose(gtp.min(), -1, 1e-3)) ## Should be equal to one"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5d388ce8-3c03-4923-bd97-ebb2e6325a6a",
"metadata": {
"id": "5d388ce8-3c03-4923-bd97-ebb2e6325a6a"
},
"outputs": [],
"source": [
"def training_sdf(sdf_gt, gtp):\n",
" geomnet = SDFNet(3)\n",
" geomnet.to(device)\n",
" gtpoints = torch.from_numpy(gtp).float().to(device)\n",
" gtsdf = torch.from_numpy(sdf_gt).float().to(device)\n",
"\n",
" lpc = []\n",
"\n",
" optim = torch.optim.Adam(params = geomnet.parameters(), lr=1e-5)\n",
"\n",
" nepochs=10000\n",
" pbar = tqdm(total=nepochs,\n",
" desc=\"Training\")\n",
"\n",
" for epoch in range(nepochs):\n",
" loss = evaluate_loss(geomnet, gtpoints, gtsdf, device, lpc, delta = 0.1, batch_size=2500)\n",
" optim.zero_grad()\n",
" loss.backward()\n",
" optim.step()\n",
" if epoch % 100 == 0:\n",
" # print(f\"Epoch {epoch}/{nepochs} - loss : {loss.item()}\")\n",
" pbar.set_postfix({'loss': loss.item()})\n",
" pbar.update(1)\n",
" return lpc, geomnet\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2b3d25b5-98f2-431d-b865-4d26b179537e",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 49,
"referenced_widgets": [
"8ce06bf5a67840f79c0d6bde734f2ed4",
"c4b4dfc8c710402bbcdbb44e506f7823",
"29255944e05e486e97462a0f2df09fd1",
"3038d1154fae492e8627438f9688abec",
"aa3d93019f41449a96ca8b627bba409f",
"94f637204a8847d5aa63c6cbba1d9584",
"c83dae32f44448d187d3f27406846808",
"5b63cd9c94534986a87d072788c6a3f5",
"43661a3d263e48b0a10aab2c375fbb50",
"99f4e4ad068e4cb3b50a11aa6de8318a",
"122eff20624a459a9878a4d05b198504"
]
},
"id": "2b3d25b5-98f2-431d-b865-4d26b179537e",
"outputId": "8c359775-45b3-489b-f631-ca82c000930b"
},
"outputs": [],
"source": [
"loss_, net_sdf = training_sdf(sdf_gt, gtp)\n",
"## If the training is slow (hours), change you execution environment to GPU!"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "befa5482-c1c5-40f3-80ea-2986cea7b1c7",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 388
},
"id": "befa5482-c1c5-40f3-80ea-2986cea7b1c7",
"outputId": "4dc96f82-ae31-43f4-80fa-1cb899830f95"
},
"outputs": [],
"source": [
"# Check that the network learned something\n",
"plt.figure(figsize=(6,4))\n",
"plt.yscale('log')\n",
"plt.plot(loss_, label = 'Point cloud loss ({:.2f})'.format(loss_[-1]))\n",
"plt.xlabel(\"Epochs\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "9631c5ff",
"metadata": {},
"source": [
"## Reconstruct the shape\n",
"Code the function compute_deepsdf that compute sdf on a grid using a trained sdf network"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e1f1f2ff-9737-42bc-8a1d-f247acea17e1",
"metadata": {
"id": "e1f1f2ff-9737-42bc-8a1d-f247acea17e1"
},
"outputs": [],
"source": [
"def compute_deepsdf(net, grid_size=40):\n",
" net.eval()\n",
" \n",
"\n",
" v = # point cloud definition (more than one_line, reshape it to (something, 3))\n",
" queries = torch.from_numpy(v).float().to(device)\n",
" with torch.no_grad():\n",
" distance = net(queries).detach().cpu().numpy()\n",
" u = np.reshape(distance,(grid_size,grid_size,grid_size))\n",
" return u"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "79cec4a2-2347-4368-869d-a4797a63a8fb",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 978,
"referenced_widgets": [
"e78d9c9c6024421d8ebf899dfe9ed253",
"fd86e89f2ae34840930e97b98257ee2d",
"00eb5a564a8142fd8aaa5a1bfe279867",
"2cf64c8ba4f446b38cc2b1f92922cb60",
"c6340c75041b460c8440f20699d7b6cb",
"334daf4803474cf6a3d88c5c2fefdb49",
"07b60692e5db42c4b77a5bc9e5696c6b",
"6aa4f2df540342328a880e5761a52850",
"c6be0df512eb4da7af5e218b862fd1ae",
"6b8801d6968a4dc8a599e286bad8e156",
"815fe0bfb3334b5ca394a067456dcc23",
"9e390bb2a45045a0bea292300d4422b5",
"8a8db73d67154ce5bd44bbeb846d7359",
"927def9a13a14f00a008e7765fb9dd78"
]
},
"id": "79cec4a2-2347-4368-869d-a4797a63a8fb",
"outputId": "2ae3cbf6-56c9-48f1-8c68-ddaa909076cd"
},
"outputs": [],
"source": [
"u = compute_deepsdf(net_sdf, 40)\n",
"vertices, triangles = mcubes.marching_cubes(u,0)\n",
"mesh = TriMesh(vertices, triangles)\n",
"mcubes.export_obj(vertices, triangles, 'result_deepsdf.obj')\n",
"plu.plot(mesh)"
]
},
{
"cell_type": "markdown",
"id": "d9be6066-adbf-4ef8-9cec-103a933d58de",
"metadata": {
"id": "d9be6066-adbf-4ef8-9cec-103a933d58de"
},
"source": [
"# Unsigned Distance Function\n",
"\n",
"In this case (paper link), the objective is to learn directly on raw point clouds, without pre-processing to predicts normals/orientation of the shape. To reach this objective, the authors notice the following:\n",
"- Using the usigned distance function (absolute value of the predicted SDF) is then necessary\n",
"- Carefully choosing the points where to predict the distance is crucial\n",
"- Weights initialization is to be changed\n",
"\n",
"The modification to SDF is simple : the loss is now computed by sampling points around each data point $x_i$ , following a centered Gaussian distribution of variance $\\sigma²$:\n",
"\n",
"$$\n",
"\\mathcal{L}(\\theta) = \\sum_i \\mathbb{E}_{x \\sim \\mathcal{N}(x_i, \\sigma^2)}[(|u_{\\theta}(x)| - |\\text{SDF}_{\\text{GT}}](x)|)^2)]\n",
"$$\n",
"\n",
"where $\\sigma$ is a parameter that you can play with, and $\\text{SDF}_{\\text{GT}}(x)$ is simply $\\text{dist}(x_i, x)$.\n",
"\n",
"The last linear layer is now initialized too, with weights following $\\mathcal{N}\\left(0, 2\\sqrt{\\pi}\\right)$ law and bias initialized to -1. The last layer activation is now $\\phi(a) = \\text{tanh}(a) + \\gamma a$. Gamma parameter now equals to 0.5."
]
},
{
"cell_type": "markdown",
"id": "re66I8b9bSVG",
"metadata": {
"id": "re66I8b9bSVG"
},
"source": [
"## Neural network\n",
"- Modify SDFNet with sal_init, such that when sal_init=True, the last layer is initialized properly\n",
"- Take in account gamma parameter in the network logic"
]
},
{
"cell_type": "markdown",
"id": "4df7cc7d",
"metadata": {},
"source": [
"## Loss function \n",
"Implement the SAL loss function"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ef5cedb8-b629-434b-8180-d7d713bb79fe",
"metadata": {
"id": "ef5cedb8-b629-434b-8180-d7d713bb79fe"
},
"outputs": [],
"source": [
" def evaluate_loss_sal(net, p, sigma, device, losses,batch_size=5000):\n",
" ## Sample batch_size points, and then sample a random point around each point\n",
"\n",
" #sample points around each of the samples\n",
"\n",
" \n",
"\n",
" # evaluate distances and compute the loss\n",
" # compute and store the losses\n",
" loss = \n",
" losses.append(loss.item())\n",
"\n",
" return loss"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8a0cec68-0e84-4bdb-99bd-3b031fee9af1",
"metadata": {
"id": "8a0cec68-0e84-4bdb-99bd-3b031fee9af1"
},
"outputs": [],
"source": [
"def training_sal(point_cloud, loss_function, sigma=0.02):\n",
" geomnet = SDFNet(3, gamma=0.5, sal_init=True)\n",
" geomnet.to(device)\n",
"\n",
" pc_norm = get_normalized_pointcloud(point_cloud)\n",
" points_torch = torch.from_numpy(pc_norm).float().to(device)\n",
"\n",
" lpc = []\n",
"\n",
" optim = torch.optim.Adam(params = geomnet.parameters(), lr=1e-4)\n",
"\n",
" nepochs=5000\n",
" pbar = tqdm(total=nepochs,\n",
" desc=\"Training\")\n",
"\n",
" for epoch in range(nepochs):\n",
" loss = loss_function(geomnet, points_torch, sigma, device, lpc, batch_size=5000)\n",
" optim.zero_grad()\n",
" loss.backward()\n",
" optim.step()\n",
" if epoch % 100 == 0:\n",
" # print(f\"Epoch {epoch}/{nepochs} - loss : {loss.item()}\")\n",
" pbar.set_postfix({'loss': loss.item()})\n",
" pbar.update(1)\n",
"\n",
"\n",
" return lpc, geomnet"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "85f7c7ba-6728-43e8-a800-4189075c512d",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 66,
"referenced_widgets": [
"7595d1d2d56640ad8a2b028d0af270f9",
"ef4250deb7be4c5db17a28dc05566477",
"580bfdbf3d91487593d7075061a2dd85",
"de9fe104a3bf4d968e0b2a14fec64d3f",
"4a39316fe18743639eae95ae2512c320",
"1c626e98e1a0446e8d70b53d74e0958f",
"d71b0598ce5f4be1bf75021d13826ff1",
"c6afaf3678374b0fb25ff3dfd9b9b9f5",
"5adb54f552ee4641bc9a8005dcc6331b",
"1533304550944d8d95be6c339fc5f52c",
"26658e529d884939a63a46946fb3b6ed"
]
},
"id": "85f7c7ba-6728-43e8-a800-4189075c512d",
"outputId": "935b7880-663c-4988-d9c2-fe091a8a9d4e"
},
"outputs": [],
"source": [
"# If you get an error: did you modify SDFNet according to the instructions?\n",
"loss_sal, net_sal = training_sal(pc, evaluate_loss_sal, sigma=0.02)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1cfb9856-af01-407e-b387-2ad404d4fbe6",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 391
},
"id": "1cfb9856-af01-407e-b387-2ad404d4fbe6",
"outputId": "b3bd12ed-a60f-4615-af5b-403521714259"
},
"outputs": [],
"source": [
"# Check that the network learned something\n",
"plt.figure(figsize=(6,4))\n",
"plt.yscale('log')\n",
"plt.plot(loss_sal, label = 'Point cloud loss ({:.2f})'.format(loss_[-1]))\n",
"plt.xlabel(\"Epochs\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a178da71-9471-4bff-b4ad-879a79a6ec8c",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 978,
"referenced_widgets": [
"816c6ca394f945e99612d29c4504b9d6",
"44ac3e738dd14856b0c4ebac02c4a6d8",
"2488a84fc9504a1aa25132ae8f0da227",
"c399d60303c341e8bb6325c860ab4959",
"21d7ca720cbd4564a2a5570807da4f53",
"d33f6725b97c40b594d90b8470126b85",
"e341313ad08d4122b0165faec7573670",
"4b9f628316c9498fb32a6fc5adaa4def",
"cbd0be1818c14d56b3653a1ead09fcf5",
"28e2959b55e843a6888ef9b6237fb6c0",
"b5c05ae02b624062839e62062271caba",
"474056ac15dd4b3687dfd435a52ceca7",
"48a99ce4d6e84123a293a091d5dc9bce",
"0bd798a3dd084cb585a969b1fd106644"
]
},
"id": "a178da71-9471-4bff-b4ad-879a79a6ec8c",
"outputId": "43685019-2aa5-4a72-ddfe-897f8a3385fc"
},
"outputs": [],
"source": [
"u = compute_deepsdf(net_sal, 40)\n",
"vertices, triangles = mcubes.marching_cubes(u,0)\n",
"mesh = TriMesh(vertices, triangles)\n",
"plu.plot(mesh)"
]
},
{
"cell_type": "markdown",
"id": "a09fe661-0a7e-49d7-91c8-e1bf752f0ac6",
"metadata": {
"id": "a09fe661-0a7e-49d7-91c8-e1bf752f0ac6"
},
"source": [
"The produced signed distances using the proposed are too smooth and can't overfit a single shape. Therefore, the authors propose to learn the $L_0$ unsigned distance, by minimizing:\n",
"\n",
"$$\n",
"\\mathcal{L}(\\theta) = \\sum_i \\mathbb{E}_{x \\sim \\mathcal{N}(x_i, \\sigma^2)}[||u_{\\theta}(x)| - 1|] + \\mathbb{E}_{x \\in \\mathcal{X}}[|u_{\\theta}(x)|],\n",
"$$\n",
"\n",
"i.e. we want the distance to be $1$ outside of the surface, and $0$ on the surface.\n",
"\n",
"Write the function evaluate_loss_sal_l0 below accordingly, and launch a new training to see the effects on the results."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e1f1f3a3-f102-4bb8-942e-cd15145e7357",
"metadata": {
"id": "e1f1f3a3-f102-4bb8-942e-cd15145e7357"
},
"outputs": [],
"source": [
"def evaluate_loss_sal_l0(net, p, sigma, device, losses,batch_size=5000):\n",
" ## Do the sampling and evaluations\n",
"\n",
" # compute and store the losses\n",
" loss = \n",
"\n",
" losses.append(loss.item())\n",
"\n",
" return loss"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fc552b1e-10b9-47ff-a4e3-2a17443e5886",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 49,
"referenced_widgets": [
"72d26aede05b4fe4bea5f10ff85dc31f",
"8c004aa288324b8c8617fbc423480388",
"e6c32731ffd94a6f995b0ed0b6b1ffd0",
"1c090379b8b444bc939ad461faae49d6",
"1c434f0793934a709b4d5233440a170b",
"529ddc48de0941bbbfff3d70615ff8d3",
"6bc487dc19884862a2d7412d87d04e54",
"95271048ab31446b9402bf0aeda5b24d",
"492ff3d421e346a08c14ffcfe5936ed4",
"1f878730ef9b47ae8928f4e0263ce5d2",
"b5ab6562d2a74fecac72001b39875c2e"
]
},
"id": "fc552b1e-10b9-47ff-a4e3-2a17443e5886",
"outputId": "703136c7-8583-4dbb-8726-3f31581a4f30"
},
"outputs": [],
"source": [
"loss_sal_0, net_sal_0 = training_sal(pc, evaluate_loss_sal_l0, sigma=0.02)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8906da72-95e6-496f-a613-3280125d0727",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 388
},
"id": "8906da72-95e6-496f-a613-3280125d0727",
"outputId": "38c37046-af55-4896-9b42-20768871cc7b"
},
"outputs": [],
"source": [
"# Check that the network learned something\n",
"plt.figure(figsize=(6,4))\n",
"plt.yscale('log')\n",
"plt.plot(loss_sal_0, label = 'Point cloud loss ({:.2f})'.format(loss_sal_0[-1]))\n",
"plt.xlabel(\"Epochs\")\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "be1e41ee-1efd-4f15-a209-89820e62334b",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 978,
"referenced_widgets": [
"32dc21c1ea6e460597628818270577d0",
"f96246e78f1241d4a3bd704c5bce4122",
"d20d3179ed2146b5896cff8e44d6a8e8",
"e7411a12b6e74aa38b8993650bb01f9a",
"15da18c8b43446e6858cb894cf0f9bca",
"1ad24d722d9e4bee94b8f27d3db788c8",
"49da82c6bb59404ab91092e0d87c12d7",
"0ef5fa1fc9d94389bf544de1d184ffcb",
"e5b98d80b35c4ea4afc5a349a33dd33d",
"5cf9d8a7f8244396b95182325f948b20",
"96642999f3d84e48b06360efda7b7d53",
"31793eea58c6499a9cf5c2e546b99100",
"e214829b89954685acf6c145ed2f2ca0",
"096cb49fc65448e7bef6e949e98071a3"
]
},
"id": "be1e41ee-1efd-4f15-a209-89820e62334b",
"outputId": "f68ae747-8fb1-46b9-d19a-dde027b24d1f"
},
"outputs": [],
"source": [
"u = compute_deepsdf(net_sal_0, 40)\n",
"vertices, triangles = mcubes.marching_cubes(u,0)\n",
"mesh = TriMesh(vertices, triangles)\n",
"plu.plot(mesh)"
]
},
{
"cell_type": "markdown",
"id": "1675226e-0287-4d89-9c43-372190fdcfc4",
"metadata": {
"id": "1675226e-0287-4d89-9c43-372190fdcfc4"
},
"source": [
"You can play with the sigma parameter to improve the results (see the paper to choose it wisely)."
]
}
],
"metadata": {
"accelerator": "GPU",
"colab": {
"gpuType": "T4",
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"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.8.18"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"00eb5a564a8142fd8aaa5a1bfe279867": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "OrbitControlsModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "OrbitControlsModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoRotate": false,
"autoRotateSpeed": 2,
"controlling": "IPY_MODEL_fd86e89f2ae34840930e97b98257ee2d",
"dampingFactor": 0.25,
"enableDamping": false,
"enableKeys": true,
"enablePan": true,
"enableRotate": true,
"enableZoom": true,
"enabled": true,
"keyPanSpeed": 7,
"maxAzimuthAngle": "inf",
"maxDistance": "inf",
"maxPolarAngle": 3.141592653589793,
"maxZoom": "inf",
"minAzimuthAngle": "-inf",
"minDistance": 0,
"minPolarAngle": 0,
"minZoom": 0,
"panSpeed": 1,
"rotateSpeed": 1,
"screenSpacePanning": true,
"target": [
19.5,
16.319141387939453,
14.710677802562714
],
"zoomSpeed": 1
}
},
"049c3d700d6e44a58fa1fb5198eb475b": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferGeometryModel",
"state": {
"MaxIndex": 65535,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferGeometryModel",
"_ref_geometry": null,
"_store_ref": false,
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"attributes": {
"position": "IPY_MODEL_bf4c052432734190aaafdf37332d6075"
},
"index": null,
"morphAttributes": {},
"name": "",
"type": "BufferGeometry",
"userData": {}
}
},
"07b60692e5db42c4b77a5bc9e5696c6b": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "DirectionalLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "DirectionalLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "white",
"frustumCulled": true,
"intensity": 0.6,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": true,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
19.5,
16.319141387939453,
100.80268201371474
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"shadow": "IPY_MODEL_33ac8473-d25e-49e1-b7ce-482a57ef1fd3",
"target": "IPY_MODEL_1bf05949-6eec-4f5b-9855-68c66bcd9e11",
"type": "DirectionalLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"096cb49fc65448e7bef6e949e98071a3": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
3177,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"09afb5addb254c8eaa57ba17c4a17f6c": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "OrbitControlsModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "OrbitControlsModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoRotate": false,
"autoRotateSpeed": 2,
"controlling": "IPY_MODEL_73da99c3a634410489b3217005de4267",
"dampingFactor": 0.25,
"enableDamping": false,
"enableKeys": true,
"enablePan": true,
"enableRotate": true,
"enableZoom": true,
"enabled": true,
"keyPanSpeed": 7,
"maxAzimuthAngle": "inf",
"maxDistance": "inf",
"maxPolarAngle": 3.141592653589793,
"maxZoom": "inf",
"minAzimuthAngle": "-inf",
"minDistance": 0,
"minPolarAngle": 0,
"minZoom": 0,
"panSpeed": 1,
"rotateSpeed": 1,
"screenSpacePanning": true,
"target": [
19.56626734882593,
19.52610757946968,
18.69771385192871
],
"zoomSpeed": 1
}
},
"0bd798a3dd084cb585a969b1fd106644": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
6613,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"0ef5fa1fc9d94389bf544de1d184ffcb": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "AmbientLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "AmbientLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "#ffffff",
"frustumCulled": true,
"intensity": 0.5,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "AmbientLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"122eff20624a459a9878a4d05b198504": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"1533304550944d8d95be6c339fc5f52c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"15da18c8b43446e6858cb894cf0f9bca": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "SceneModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "SceneModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoUpdate": true,
"background": "#ffffff",
"castShadow": false,
"children": [
"IPY_MODEL_f96246e78f1241d4a3bd704c5bce4122",
"IPY_MODEL_0ef5fa1fc9d94389bf544de1d184ffcb",
"IPY_MODEL_e5b98d80b35c4ea4afc5a349a33dd33d"
],
"fog": null,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"overrideMaterial": null,
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Scene",
"up": [
0,
1,
0
],
"visible": true
}
},
"1ad24d722d9e4bee94b8f27d3db788c8": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "WebGLShadowMapModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "WebGLShadowMapModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"enabled": false,
"type": "PCFShadowMap"
}
},
"1c090379b8b444bc939ad461faae49d6": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HTMLModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_1f878730ef9b47ae8928f4e0263ce5d2",
"placeholder": "",
"style": "IPY_MODEL_b5ab6562d2a74fecac72001b39875c2e",
"value": " 5000/5000 [03:28<00:00, 33.07it/s, loss=0.611]"
}
},
"1c434f0793934a709b4d5233440a170b": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"1c626e98e1a0446e8d70b53d74e0958f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"1c81f0a67a3c42ada4b4f7ba51004c20": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "PointsMaterialModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "PointsMaterialModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"alphaTest": 0.5,
"blendDst": "OneMinusSrcAlphaFactor",
"blendDstAlpha": 0,
"blendEquation": "AddEquation",
"blendEquationAlpha": 0,
"blendSrc": "SrcAlphaFactor",
"blendSrcAlpha": 0,
"blending": "NormalBlending",
"clipIntersection": false,
"clipShadows": false,
"clippingPlanes": [],
"color": "red",
"colorWrite": true,
"defines": null,
"depthFunc": "LessEqualDepth",
"depthTest": true,
"depthWrite": true,
"dithering": false,
"flatShading": false,
"fog": true,
"lights": false,
"map": "IPY_MODEL_32fcb6d5aae14d708c9257951e5b6b57",
"morphTargets": false,
"name": "",
"opacity": 1,
"overdraw": 0,
"polygonOffset": false,
"polygonOffsetFactor": 0,
"polygonOffsetUnits": 0,
"precision": null,
"premultipliedAlpha": false,
"shadowSide": null,
"side": "FrontSide",
"size": 2,
"sizeAttenuation": true,
"transparent": false,
"type": "PointsMaterial",
"vertexColors": "NoColors",
"visible": true
}
},
"1f878730ef9b47ae8928f4e0263ce5d2": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"21cd72c937be45ffa1aa1ecd66565055": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "PerspectiveCameraModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "PerspectiveCameraModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"aspect": 1,
"castShadow": false,
"children": [
"IPY_MODEL_fb0e1201299146d0907726ba0a1671b8"
],
"far": 2000,
"focus": 342.99758039957504,
"fov": 30,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
-6.214703336382315e-17,
0,
0,
6.214703336382315e-17,
1,
0,
0.021650314331054688,
21.44474792480471,
342.955479493203,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
-6.214703336382315e-17,
0,
0,
6.214703336382315e-17,
1,
0,
0.021650314331054688,
21.44474792480471,
342.955479493203,
1
],
"matrixWorldInverse": [
1,
0,
0,
0,
0,
1,
6.214703336382315e-17,
0,
0,
-6.214703336382315e-17,
1,
0,
-0.021650314331054688,
-21.444747924804688,
-342.955479493203,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"near": 0.1,
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0.021650314331054688,
21.44474792480471,
342.955479493203
],
"projectionMatrix": [
3.7320508075688776,
0,
0,
0,
0,
3.7320508075688776,
0,
0,
0,
0,
-1.00010000500025,
-1,
0,
0,
-0.200010000500025,
0
],
"quaternion": [
-3.1073516681911577e-17,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
-6.214703336382315e-17,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "PerspectiveCamera",
"up": [
0,
1,
0
],
"visible": true,
"zoom": 1
}
},
"21d7ca720cbd4564a2a5570807da4f53": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "SceneModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "SceneModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoUpdate": true,
"background": "#ffffff",
"castShadow": false,
"children": [
"IPY_MODEL_44ac3e738dd14856b0c4ebac02c4a6d8",
"IPY_MODEL_4b9f628316c9498fb32a6fc5adaa4def",
"IPY_MODEL_cbd0be1818c14d56b3653a1ead09fcf5"
],
"fog": null,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"overrideMaterial": null,
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Scene",
"up": [
0,
1,
0
],
"visible": true
}
},
"2488a84fc9504a1aa25132ae8f0da227": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "OrbitControlsModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "OrbitControlsModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoRotate": false,
"autoRotateSpeed": 2,
"controlling": "IPY_MODEL_44ac3e738dd14856b0c4ebac02c4a6d8",
"dampingFactor": 0.25,
"enableDamping": false,
"enableKeys": true,
"enablePan": true,
"enableRotate": true,
"enableZoom": true,
"enabled": true,
"keyPanSpeed": 7,
"maxAzimuthAngle": "inf",
"maxDistance": "inf",
"maxPolarAngle": 3.141592653589793,
"maxZoom": "inf",
"minAzimuthAngle": "-inf",
"minDistance": 0,
"minPolarAngle": 0,
"minZoom": 0,
"panSpeed": 1,
"rotateSpeed": 1,
"screenSpacePanning": true,
"target": [
19.5,
18.427691280841827,
15.430784910917282
],
"zoomSpeed": 1
}
},
"260d4b9064bf4e7f8940f6fdb2db7e60": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "DirectionalLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "DirectionalLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "white",
"frustumCulled": true,
"intensity": 0.6,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": true,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
19.56626734882593,
19.52610757946968,
118.34056146943013
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"shadow": "IPY_MODEL_f478e2f8-2fca-4eee-ae2f-4734e6e69eef",
"target": "IPY_MODEL_5f27645a-777a-4976-bca4-9d56f8fea3d5",
"type": "DirectionalLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"26658e529d884939a63a46946fb3b6ed": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"28e2959b55e843a6888ef9b6237fb6c0": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferGeometryModel",
"state": {
"MaxIndex": 65535,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferGeometryModel",
"_ref_geometry": null,
"_store_ref": false,
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"attributes": {
"color": "IPY_MODEL_474056ac15dd4b3687dfd435a52ceca7",
"index": "IPY_MODEL_48a99ce4d6e84123a293a091d5dc9bce",
"position": "IPY_MODEL_0bd798a3dd084cb585a969b1fd106644"
},
"index": null,
"morphAttributes": {},
"name": "",
"type": "BufferGeometry",
"userData": {}
}
},
"29255944e05e486e97462a0f2df09fd1": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "FloatProgressModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "FloatProgressModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "ProgressView",
"bar_style": "success",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_5b63cd9c94534986a87d072788c6a3f5",
"max": 10000,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_43661a3d263e48b0a10aab2c375fbb50",
"value": 10000
}
},
"2cf64c8ba4f446b38cc2b1f92922cb60": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"2eb48b41ecb94ef18aba4c9dce9fc3cd": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "WebGLShadowMapModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "WebGLShadowMapModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"enabled": false,
"type": "PCFShadowMap"
}
},
"3038d1154fae492e8627438f9688abec": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HTMLModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_99f4e4ad068e4cb3b50a11aa6de8318a",
"placeholder": "",
"style": "IPY_MODEL_122eff20624a459a9878a4d05b198504",
"value": " 10000/10000 [01:24<00:00, 128.10it/s, loss=0.000689]"
}
},
"31793eea58c6499a9cf5c2e546b99100": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
3177,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": true,
"version": 1
}
},
"32dc21c1ea6e460597628818270577d0": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "RendererModel",
"state": {
"_alpha": false,
"_antialias": true,
"_dom_classes": [],
"_height": 600,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "RendererModel",
"_pause_autorender": false,
"_view_count": null,
"_view_module": "jupyter-threejs",
"_view_module_version": "^2.4.1",
"_view_name": "RendererView",
"_webgl_version": 2,
"_width": 600,
"autoClear": true,
"autoClearColor": true,
"autoClearDepth": true,
"autoClearStencil": true,
"background": "black",
"background_opacity": 1,
"camera": "IPY_MODEL_f96246e78f1241d4a3bd704c5bce4122",
"clearColor": "#000000",
"clearOpacity": 1,
"clippingPlanes": [],
"controls": [
"IPY_MODEL_d20d3179ed2146b5896cff8e44d6a8e8"
],
"gammaFactor": 2,
"gammaInput": false,
"gammaOutput": false,
"layout": "IPY_MODEL_e7411a12b6e74aa38b8993650bb01f9a",
"localClippingEnabled": false,
"maxMorphNormals": 4,
"maxMorphTargets": 8,
"physicallyCorrectLights": false,
"scene": "IPY_MODEL_15da18c8b43446e6858cb894cf0f9bca",
"shadowMap": "IPY_MODEL_1ad24d722d9e4bee94b8f27d3db788c8",
"sortObject": true,
"toneMapping": "LinearToneMapping",
"toneMappingExposure": 1,
"toneMappingWhitePoint": 1
}
},
"32fcb6d5aae14d708c9257951e5b6b57": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "DataTextureModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "DataTextureModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"anisotropy": 1,
"data": {
"dtype": "float32",
"shape": [
16,
16,
4
]
},
"encoding": "LinearEncoding",
"flipY": false,
"format": "RGBAFormat",
"generateMipmaps": false,
"magFilter": "NearestFilter",
"mapping": "UVMapping",
"minFilter": "NearestFilter",
"name": "",
"offset": [
0,
0
],
"premultiplyAlpha": false,
"repeat": [
1,
1
],
"rotation": 0,
"type": "FloatType",
"unpackAlignment": 4,
"version": 1,
"wrapS": "ClampToEdgeWrapping",
"wrapT": "ClampToEdgeWrapping"
}
},
"334daf4803474cf6a3d88c5c2fefdb49": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "WebGLShadowMapModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "WebGLShadowMapModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"enabled": false,
"type": "PCFShadowMap"
}
},
"391b74dbf597484d894f4849f0cc0373": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "RendererModel",
"state": {
"_alpha": false,
"_antialias": true,
"_dom_classes": [],
"_height": 600,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "RendererModel",
"_pause_autorender": false,
"_view_count": null,
"_view_module": "jupyter-threejs",
"_view_module_version": "^2.4.1",
"_view_name": "RendererView",
"_webgl_version": 2,
"_width": 600,
"autoClear": true,
"autoClearColor": true,
"autoClearDepth": true,
"autoClearStencil": true,
"background": "black",
"background_opacity": 1,
"camera": "IPY_MODEL_73da99c3a634410489b3217005de4267",
"clearColor": "#000000",
"clearOpacity": 1,
"clippingPlanes": [],
"controls": [
"IPY_MODEL_09afb5addb254c8eaa57ba17c4a17f6c"
],
"gammaFactor": 2,
"gammaInput": false,
"gammaOutput": false,
"layout": "IPY_MODEL_58878c7d0deb48ffa0ed8ffa8c7efb76",
"localClippingEnabled": false,
"maxMorphNormals": 4,
"maxMorphTargets": 8,
"physicallyCorrectLights": false,
"scene": "IPY_MODEL_dbd12d44ada7410581f4f9a0532556ae",
"shadowMap": "IPY_MODEL_2eb48b41ecb94ef18aba4c9dce9fc3cd",
"sortObject": true,
"toneMapping": "LinearToneMapping",
"toneMappingExposure": 1,
"toneMappingWhitePoint": 1
}
},
"43661a3d263e48b0a10aab2c375fbb50": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "ProgressStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ProgressStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"bar_color": null,
"description_width": ""
}
},
"44ac3e738dd14856b0c4ebac02c4a6d8": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "PerspectiveCameraModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "PerspectiveCameraModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"aspect": 1,
"castShadow": false,
"children": [
"IPY_MODEL_e341313ad08d4122b0165faec7573670"
],
"far": 2000,
"focus": 89.5249348114381,
"fov": 30,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
-7.936813774359969e-17,
0,
0,
7.936813774359969e-17,
1,
0,
19.5,
18.427691280841834,
104.95571972235538,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
-7.936813774359969e-17,
0,
0,
7.936813774359969e-17,
1,
0,
19.5,
18.427691280841834,
104.95571972235538,
1
],
"matrixWorldInverse": [
1,
0,
0,
0,
0,
1,
7.936813774359969e-17,
0,
0,
-7.936813774359969e-17,
1,
0,
-19.5,
-18.427691280841827,
-104.95571972235538,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"near": 0.1,
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
20.382923435347532,
-80.76347233687763,
14.883349187568955
],
"projectionMatrix": [
3.7320508075688776,
0,
0,
0,
0,
3.7320508075688776,
0,
0,
0,
0,
-1.00010000500025,
-1,
0,
0,
-0.200010000500025,
0
],
"quaternion": [
0.3420855575716154,
0.6210771436875586,
-0.6146064426147007,
0.34568710358693355
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
-7.936813774359969e-17,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "PerspectiveCamera",
"up": [
0,
1,
0
],
"visible": true,
"zoom": 1
}
},
"474056ac15dd4b3687dfd435a52ceca7": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
6613,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": true,
"version": 1
}
},
"48a99ce4d6e84123a293a091d5dc9bce": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "uint32",
"shape": [
39474
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"492ff3d421e346a08c14ffcfe5936ed4": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "ProgressStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ProgressStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"bar_color": null,
"description_width": ""
}
},
"49da82c6bb59404ab91092e0d87c12d7": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "DirectionalLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "DirectionalLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "white",
"frustumCulled": true,
"intensity": 0.6,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": true,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
18.959218978881836,
16.47233337163925,
98.343185685602
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"shadow": "IPY_MODEL_dfc72145-e8bb-41a2-9750-35bac5393df0",
"target": "IPY_MODEL_a4212ac4-2852-469f-8fe0-c8ab0e4347b3",
"type": "DirectionalLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"4a39316fe18743639eae95ae2512c320": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"4b9f628316c9498fb32a6fc5adaa4def": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "AmbientLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "AmbientLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "#ffffff",
"frustumCulled": true,
"intensity": 0.5,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "AmbientLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"4d0f56e67ff14eba9aad0fc176f4e719": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
4780,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": true,
"version": 1
}
},
"529ddc48de0941bbbfff3d70615ff8d3": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"580bfdbf3d91487593d7075061a2dd85": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "FloatProgressModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "FloatProgressModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "ProgressView",
"bar_style": "success",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_c6afaf3678374b0fb25ff3dfd9b9b9f5",
"max": 5000,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_5adb54f552ee4641bc9a8005dcc6331b",
"value": 5000
}
},
"58878c7d0deb48ffa0ed8ffa8c7efb76": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"5adb54f552ee4641bc9a8005dcc6331b": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "ProgressStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "ProgressStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"bar_color": null,
"description_width": ""
}
},
"5b63cd9c94534986a87d072788c6a3f5": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"5cf9d8a7f8244396b95182325f948b20": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferGeometryModel",
"state": {
"MaxIndex": 65535,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferGeometryModel",
"_ref_geometry": null,
"_store_ref": false,
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"attributes": {
"color": "IPY_MODEL_31793eea58c6499a9cf5c2e546b99100",
"index": "IPY_MODEL_e214829b89954685acf6c145ed2f2ca0",
"position": "IPY_MODEL_096cb49fc65448e7bef6e949e98071a3"
},
"index": null,
"morphAttributes": {},
"name": "",
"type": "BufferGeometry",
"userData": {}
}
},
"6aa4f2df540342328a880e5761a52850": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "AmbientLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "AmbientLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "#ffffff",
"frustumCulled": true,
"intensity": 0.5,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "AmbientLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"6b8801d6968a4dc8a599e286bad8e156": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferGeometryModel",
"state": {
"MaxIndex": 65535,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferGeometryModel",
"_ref_geometry": null,
"_store_ref": false,
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"attributes": {
"color": "IPY_MODEL_9e390bb2a45045a0bea292300d4422b5",
"index": "IPY_MODEL_8a8db73d67154ce5bd44bbeb846d7359",
"position": "IPY_MODEL_927def9a13a14f00a008e7765fb9dd78"
},
"index": null,
"morphAttributes": {},
"name": "",
"type": "BufferGeometry",
"userData": {}
}
},
"6bc487dc19884862a2d7412d87d04e54": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"6bc9b2fd29294397bfaa45ef111de96f": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
4780,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"7291c1b7d2ca4391958376561a2e8d51": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferGeometryModel",
"state": {
"MaxIndex": 65535,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferGeometryModel",
"_ref_geometry": null,
"_store_ref": false,
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"attributes": {
"color": "IPY_MODEL_4d0f56e67ff14eba9aad0fc176f4e719",
"index": "IPY_MODEL_f6ddac9617d14a3995ef687f28439061",
"position": "IPY_MODEL_6bc9b2fd29294397bfaa45ef111de96f"
},
"index": null,
"morphAttributes": {},
"name": "",
"type": "BufferGeometry",
"userData": {}
}
},
"72d26aede05b4fe4bea5f10ff85dc31f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HBoxModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HBoxView",
"box_style": "",
"children": [
"IPY_MODEL_8c004aa288324b8c8617fbc423480388",
"IPY_MODEL_e6c32731ffd94a6f995b0ed0b6b1ffd0",
"IPY_MODEL_1c090379b8b444bc939ad461faae49d6"
],
"layout": "IPY_MODEL_1c434f0793934a709b4d5233440a170b"
}
},
"73da99c3a634410489b3217005de4267": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "PerspectiveCameraModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "PerspectiveCameraModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"aspect": 1,
"castShadow": false,
"children": [
"IPY_MODEL_260d4b9064bf4e7f8940f6fdb2db7e60"
],
"far": 2000,
"focus": 99.64284761750142,
"fov": 30,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
-7.130895520847192e-17,
0,
0,
7.130895520847192e-17,
1,
0,
19.56626734882593,
19.526107579469688,
118.34056146943013,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
-7.130895520847192e-17,
0,
0,
7.130895520847192e-17,
1,
0,
19.56626734882593,
19.526107579469688,
118.34056146943013,
1
],
"matrixWorldInverse": [
1,
0,
0,
0,
0,
1,
7.130895520847192e-17,
0,
0,
-7.130895520847192e-17,
1,
0,
-19.56626734882593,
-19.52610757946968,
-118.34056146943013,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"near": 0.1,
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
19.56626734882593,
19.526107579469688,
118.34056146943013
],
"projectionMatrix": [
3.7320508075688776,
0,
0,
0,
0,
3.7320508075688776,
0,
0,
0,
0,
-1.00010000500025,
-1,
0,
0,
-0.200010000500025,
0
],
"quaternion": [
-3.565447760423596e-17,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
-7.130895520847192e-17,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "PerspectiveCamera",
"up": [
0,
1,
0
],
"visible": true,
"zoom": 1
}
},
"7595d1d2d56640ad8a2b028d0af270f9": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HBoxModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HBoxView",
"box_style": "",
"children": [
"IPY_MODEL_ef4250deb7be4c5db17a28dc05566477",
"IPY_MODEL_580bfdbf3d91487593d7075061a2dd85",
"IPY_MODEL_de9fe104a3bf4d968e0b2a14fec64d3f"
],
"layout": "IPY_MODEL_4a39316fe18743639eae95ae2512c320"
}
},
"7c6c112f72ad4c05b603165b08978430": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "PointsModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "PointsModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"frustumCulled": true,
"geometry": "IPY_MODEL_049c3d700d6e44a58fa1fb5198eb475b",
"material": "IPY_MODEL_1c81f0a67a3c42ada4b4f7ba51004c20",
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Points",
"up": [
0,
1,
0
],
"visible": true
}
},
"815fe0bfb3334b5ca394a067456dcc23": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "MeshStandardMaterialModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "MeshStandardMaterialModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"alphaMap": null,
"alphaTest": 0,
"aoMap": null,
"aoMapIntensity": 1,
"blendDst": "OneMinusSrcAlphaFactor",
"blendDstAlpha": 0,
"blendEquation": "AddEquation",
"blendEquationAlpha": 0,
"blendSrc": "SrcAlphaFactor",
"blendSrcAlpha": 0,
"blending": "NormalBlending",
"bumpMap": null,
"bumpScale": 1,
"clipIntersection": false,
"clipShadows": false,
"clippingPlanes": [],
"color": "#ffffff",
"colorWrite": true,
"defines": {
"STANDARD": ""
},
"depthFunc": "LessEqualDepth",
"depthTest": true,
"depthWrite": true,
"displacementBias": 0,
"displacementMap": null,
"displacementScale": 1,
"dithering": false,
"emissive": "#000000",
"emissiveIntensity": 1,
"emissiveMap": null,
"envMap": null,
"envMapIntensity": 1,
"flatShading": true,
"fog": true,
"lightMap": null,
"lightMapIntensity": 1,
"lights": true,
"map": null,
"metalness": 0.25,
"metalnessMap": null,
"morphNormals": false,
"morphTargets": false,
"name": "",
"normalMap": null,
"normalScale": [
1,
1
],
"opacity": 1,
"overdraw": 0,
"polygonOffset": true,
"polygonOffsetFactor": 1,
"polygonOffsetUnits": 5,
"precision": null,
"premultipliedAlpha": false,
"refractionRatio": 0.98,
"roughness": 0.5,
"roughnessMap": null,
"shadowSide": null,
"side": "DoubleSide",
"skinning": false,
"transparent": false,
"type": "MeshStandardMaterial",
"vertexColors": "VertexColors",
"visible": true,
"wireframe": false,
"wireframeLinecap": "round",
"wireframeLinejoin": "round",
"wireframeLinewidth": 1
}
},
"816c6ca394f945e99612d29c4504b9d6": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "RendererModel",
"state": {
"_alpha": false,
"_antialias": true,
"_dom_classes": [],
"_height": 600,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "RendererModel",
"_pause_autorender": false,
"_view_count": null,
"_view_module": "jupyter-threejs",
"_view_module_version": "^2.4.1",
"_view_name": "RendererView",
"_webgl_version": 2,
"_width": 600,
"autoClear": true,
"autoClearColor": true,
"autoClearDepth": true,
"autoClearStencil": true,
"background": "black",
"background_opacity": 1,
"camera": "IPY_MODEL_44ac3e738dd14856b0c4ebac02c4a6d8",
"clearColor": "#000000",
"clearOpacity": 1,
"clippingPlanes": [],
"controls": [
"IPY_MODEL_2488a84fc9504a1aa25132ae8f0da227"
],
"gammaFactor": 2,
"gammaInput": false,
"gammaOutput": false,
"layout": "IPY_MODEL_c399d60303c341e8bb6325c860ab4959",
"localClippingEnabled": false,
"maxMorphNormals": 4,
"maxMorphTargets": 8,
"physicallyCorrectLights": false,
"scene": "IPY_MODEL_21d7ca720cbd4564a2a5570807da4f53",
"shadowMap": "IPY_MODEL_d33f6725b97c40b594d90b8470126b85",
"sortObject": true,
"toneMapping": "LinearToneMapping",
"toneMappingExposure": 1,
"toneMappingWhitePoint": 1
}
},
"85b7741de559492ea0b0ee731b808ee8": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "OrbitControlsModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "OrbitControlsModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoRotate": false,
"autoRotateSpeed": 2,
"controlling": "IPY_MODEL_21cd72c937be45ffa1aa1ecd66565055",
"dampingFactor": 0.25,
"enableDamping": false,
"enableKeys": true,
"enablePan": true,
"enableRotate": true,
"enableZoom": true,
"enabled": true,
"keyPanSpeed": 7,
"maxAzimuthAngle": "inf",
"maxDistance": "inf",
"maxPolarAngle": 3.141592653589793,
"maxZoom": "inf",
"minAzimuthAngle": "-inf",
"minDistance": 0,
"minPolarAngle": 0,
"minZoom": 0,
"panSpeed": 1,
"rotateSpeed": 1,
"screenSpacePanning": true,
"target": [
0.021650314331054688,
21.444747924804688,
-0.04210090637207031
],
"zoomSpeed": 1
}
},
"8884a15509704f418e3baf747c978f21": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "AmbientLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "AmbientLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "#ffffff",
"frustumCulled": true,
"intensity": 0.5,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "AmbientLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"8a8db73d67154ce5bd44bbeb846d7359": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "uint32",
"shape": [
20022
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"8c004aa288324b8c8617fbc423480388": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HTMLModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_529ddc48de0941bbbfff3d70615ff8d3",
"placeholder": "",
"style": "IPY_MODEL_6bc487dc19884862a2d7412d87d04e54",
"value": "Training: 100%"
}
},
"8ce06bf5a67840f79c0d6bde734f2ed4": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HBoxModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HBoxModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HBoxView",
"box_style": "",
"children": [
"IPY_MODEL_c4b4dfc8c710402bbcdbb44e506f7823",
"IPY_MODEL_29255944e05e486e97462a0f2df09fd1",
"IPY_MODEL_3038d1154fae492e8627438f9688abec"
],
"layout": "IPY_MODEL_aa3d93019f41449a96ca8b627bba409f"
}
},
"927def9a13a14f00a008e7765fb9dd78": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
3372,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"94f637204a8847d5aa63c6cbba1d9584": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"95271048ab31446b9402bf0aeda5b24d": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"96642999f3d84e48b06360efda7b7d53": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "MeshStandardMaterialModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "MeshStandardMaterialModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"alphaMap": null,
"alphaTest": 0,
"aoMap": null,
"aoMapIntensity": 1,
"blendDst": "OneMinusSrcAlphaFactor",
"blendDstAlpha": 0,
"blendEquation": "AddEquation",
"blendEquationAlpha": 0,
"blendSrc": "SrcAlphaFactor",
"blendSrcAlpha": 0,
"blending": "NormalBlending",
"bumpMap": null,
"bumpScale": 1,
"clipIntersection": false,
"clipShadows": false,
"clippingPlanes": [],
"color": "#ffffff",
"colorWrite": true,
"defines": {
"STANDARD": ""
},
"depthFunc": "LessEqualDepth",
"depthTest": true,
"depthWrite": true,
"displacementBias": 0,
"displacementMap": null,
"displacementScale": 1,
"dithering": false,
"emissive": "#000000",
"emissiveIntensity": 1,
"emissiveMap": null,
"envMap": null,
"envMapIntensity": 1,
"flatShading": true,
"fog": true,
"lightMap": null,
"lightMapIntensity": 1,
"lights": true,
"map": null,
"metalness": 0.25,
"metalnessMap": null,
"morphNormals": false,
"morphTargets": false,
"name": "",
"normalMap": null,
"normalScale": [
1,
1
],
"opacity": 1,
"overdraw": 0,
"polygonOffset": true,
"polygonOffsetFactor": 1,
"polygonOffsetUnits": 5,
"precision": null,
"premultipliedAlpha": false,
"refractionRatio": 0.98,
"roughness": 0.5,
"roughnessMap": null,
"shadowSide": null,
"side": "DoubleSide",
"skinning": false,
"transparent": false,
"type": "MeshStandardMaterial",
"vertexColors": "VertexColors",
"visible": true,
"wireframe": false,
"wireframeLinecap": "round",
"wireframeLinejoin": "round",
"wireframeLinewidth": 1
}
},
"99f4e4ad068e4cb3b50a11aa6de8318a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"9e390bb2a45045a0bea292300d4422b5": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
3372,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": true,
"version": 1
}
},
"a0d23a848b0149c7a86c7241181fee9b": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "RendererModel",
"state": {
"_alpha": false,
"_antialias": true,
"_dom_classes": [],
"_height": 600,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "RendererModel",
"_pause_autorender": false,
"_view_count": null,
"_view_module": "jupyter-threejs",
"_view_module_version": "^2.4.1",
"_view_name": "RendererView",
"_webgl_version": 2,
"_width": 600,
"autoClear": true,
"autoClearColor": true,
"autoClearDepth": true,
"autoClearStencil": true,
"background": "black",
"background_opacity": 1,
"camera": "IPY_MODEL_21cd72c937be45ffa1aa1ecd66565055",
"clearColor": "#000000",
"clearOpacity": 1,
"clippingPlanes": [],
"controls": [
"IPY_MODEL_85b7741de559492ea0b0ee731b808ee8"
],
"gammaFactor": 2,
"gammaInput": false,
"gammaOutput": false,
"layout": "IPY_MODEL_e18fcaef8e8f439f829be72913b09838",
"localClippingEnabled": false,
"maxMorphNormals": 4,
"maxMorphTargets": 8,
"physicallyCorrectLights": false,
"scene": "IPY_MODEL_a40304a01ddc452e89133e17c21c09ab",
"shadowMap": "IPY_MODEL_ba57353533c047878b8d58e10d940aa3",
"sortObject": true,
"toneMapping": "LinearToneMapping",
"toneMappingExposure": 1,
"toneMappingWhitePoint": 1
}
},
"a40304a01ddc452e89133e17c21c09ab": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "SceneModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "SceneModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoUpdate": true,
"background": "#ffffff",
"castShadow": false,
"children": [
"IPY_MODEL_21cd72c937be45ffa1aa1ecd66565055",
"IPY_MODEL_bc4b6d21503f492c9f8d785886144744",
"IPY_MODEL_7c6c112f72ad4c05b603165b08978430"
],
"fog": null,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"overrideMaterial": null,
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Scene",
"up": [
0,
1,
0
],
"visible": true
}
},
"aa3d93019f41449a96ca8b627bba409f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"af00878bc86e4811880053a056956e85": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "MeshModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "MeshModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"drawMode": "TrianglesDrawMode",
"frustumCulled": true,
"geometry": "IPY_MODEL_7291c1b7d2ca4391958376561a2e8d51",
"material": "IPY_MODEL_c2b1122c8cd640fcb0e9c4ca80674e8f",
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"morphTargetInfluences": [],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Mesh",
"up": [
0,
1,
0
],
"visible": true
}
},
"b5ab6562d2a74fecac72001b39875c2e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"b5c05ae02b624062839e62062271caba": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "MeshStandardMaterialModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "MeshStandardMaterialModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"alphaMap": null,
"alphaTest": 0,
"aoMap": null,
"aoMapIntensity": 1,
"blendDst": "OneMinusSrcAlphaFactor",
"blendDstAlpha": 0,
"blendEquation": "AddEquation",
"blendEquationAlpha": 0,
"blendSrc": "SrcAlphaFactor",
"blendSrcAlpha": 0,
"blending": "NormalBlending",
"bumpMap": null,
"bumpScale": 1,
"clipIntersection": false,
"clipShadows": false,
"clippingPlanes": [],
"color": "#ffffff",
"colorWrite": true,
"defines": {
"STANDARD": ""
},
"depthFunc": "LessEqualDepth",
"depthTest": true,
"depthWrite": true,
"displacementBias": 0,
"displacementMap": null,
"displacementScale": 1,
"dithering": false,
"emissive": "#000000",
"emissiveIntensity": 1,
"emissiveMap": null,
"envMap": null,
"envMapIntensity": 1,
"flatShading": true,
"fog": true,
"lightMap": null,
"lightMapIntensity": 1,
"lights": true,
"map": null,
"metalness": 0.25,
"metalnessMap": null,
"morphNormals": false,
"morphTargets": false,
"name": "",
"normalMap": null,
"normalScale": [
1,
1
],
"opacity": 1,
"overdraw": 0,
"polygonOffset": true,
"polygonOffsetFactor": 1,
"polygonOffsetUnits": 5,
"precision": null,
"premultipliedAlpha": false,
"refractionRatio": 0.98,
"roughness": 0.5,
"roughnessMap": null,
"shadowSide": null,
"side": "DoubleSide",
"skinning": false,
"transparent": false,
"type": "MeshStandardMaterial",
"vertexColors": "VertexColors",
"visible": true,
"wireframe": false,
"wireframeLinecap": "round",
"wireframeLinejoin": "round",
"wireframeLinewidth": 1
}
},
"ba57353533c047878b8d58e10d940aa3": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "WebGLShadowMapModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "WebGLShadowMapModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"enabled": false,
"type": "PCFShadowMap"
}
},
"bc4b6d21503f492c9f8d785886144744": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "AmbientLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "AmbientLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "#ffffff",
"frustumCulled": true,
"intensity": 0.5,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "AmbientLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"bf4c052432734190aaafdf37332d6075": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "float32",
"shape": [
208145,
3
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"c2b1122c8cd640fcb0e9c4ca80674e8f": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "MeshStandardMaterialModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "MeshStandardMaterialModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"alphaMap": null,
"alphaTest": 0,
"aoMap": null,
"aoMapIntensity": 1,
"blendDst": "OneMinusSrcAlphaFactor",
"blendDstAlpha": 0,
"blendEquation": "AddEquation",
"blendEquationAlpha": 0,
"blendSrc": "SrcAlphaFactor",
"blendSrcAlpha": 0,
"blending": "NormalBlending",
"bumpMap": null,
"bumpScale": 1,
"clipIntersection": false,
"clipShadows": false,
"clippingPlanes": [],
"color": "#ffffff",
"colorWrite": true,
"defines": {
"STANDARD": ""
},
"depthFunc": "LessEqualDepth",
"depthTest": true,
"depthWrite": true,
"displacementBias": 0,
"displacementMap": null,
"displacementScale": 1,
"dithering": false,
"emissive": "#000000",
"emissiveIntensity": 1,
"emissiveMap": null,
"envMap": null,
"envMapIntensity": 1,
"flatShading": true,
"fog": true,
"lightMap": null,
"lightMapIntensity": 1,
"lights": true,
"map": null,
"metalness": 0.25,
"metalnessMap": null,
"morphNormals": false,
"morphTargets": false,
"name": "",
"normalMap": null,
"normalScale": [
1,
1
],
"opacity": 1,
"overdraw": 0,
"polygonOffset": true,
"polygonOffsetFactor": 1,
"polygonOffsetUnits": 5,
"precision": null,
"premultipliedAlpha": false,
"refractionRatio": 0.98,
"roughness": 0.5,
"roughnessMap": null,
"shadowSide": null,
"side": "DoubleSide",
"skinning": false,
"transparent": false,
"type": "MeshStandardMaterial",
"vertexColors": "VertexColors",
"visible": true,
"wireframe": false,
"wireframeLinecap": "round",
"wireframeLinejoin": "round",
"wireframeLinewidth": 1
}
},
"c399d60303c341e8bb6325c860ab4959": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"c4b4dfc8c710402bbcdbb44e506f7823": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HTMLModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_94f637204a8847d5aa63c6cbba1d9584",
"placeholder": "",
"style": "IPY_MODEL_c83dae32f44448d187d3f27406846808",
"value": "Training: 100%"
}
},
"c6340c75041b460c8440f20699d7b6cb": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "SceneModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "SceneModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoUpdate": true,
"background": "#ffffff",
"castShadow": false,
"children": [
"IPY_MODEL_fd86e89f2ae34840930e97b98257ee2d",
"IPY_MODEL_6aa4f2df540342328a880e5761a52850",
"IPY_MODEL_c6be0df512eb4da7af5e218b862fd1ae"
],
"fog": null,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"overrideMaterial": null,
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Scene",
"up": [
0,
1,
0
],
"visible": true
}
},
"c6afaf3678374b0fb25ff3dfd9b9b9f5": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"c6be0df512eb4da7af5e218b862fd1ae": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "MeshModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "MeshModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"drawMode": "TrianglesDrawMode",
"frustumCulled": true,
"geometry": "IPY_MODEL_6b8801d6968a4dc8a599e286bad8e156",
"material": "IPY_MODEL_815fe0bfb3334b5ca394a067456dcc23",
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"morphTargetInfluences": [],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Mesh",
"up": [
0,
1,
0
],
"visible": true
}
},
"c83dae32f44448d187d3f27406846808": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"cbd0be1818c14d56b3653a1ead09fcf5": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "MeshModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "MeshModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"drawMode": "TrianglesDrawMode",
"frustumCulled": true,
"geometry": "IPY_MODEL_28e2959b55e843a6888ef9b6237fb6c0",
"material": "IPY_MODEL_b5c05ae02b624062839e62062271caba",
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"morphTargetInfluences": [],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Mesh",
"up": [
0,
1,
0
],
"visible": true
}
},
"d20d3179ed2146b5896cff8e44d6a8e8": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "OrbitControlsModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "OrbitControlsModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoRotate": false,
"autoRotateSpeed": 2,
"controlling": "IPY_MODEL_f96246e78f1241d4a3bd704c5bce4122",
"dampingFactor": 0.25,
"enableDamping": false,
"enableKeys": true,
"enablePan": true,
"enableRotate": true,
"enableZoom": true,
"enabled": true,
"keyPanSpeed": 7,
"maxAzimuthAngle": "inf",
"maxDistance": "inf",
"maxPolarAngle": 3.141592653589793,
"maxZoom": "inf",
"minAzimuthAngle": "-inf",
"minDistance": 0,
"minPolarAngle": 0,
"minZoom": 0,
"panSpeed": 1,
"rotateSpeed": 1,
"screenSpacePanning": true,
"target": [
18.959218978881836,
16.47233337163925,
15.032747089862823
],
"zoomSpeed": 1
}
},
"d33f6725b97c40b594d90b8470126b85": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "WebGLShadowMapModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "WebGLShadowMapModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"enabled": false,
"type": "PCFShadowMap"
}
},
"d71b0598ce5f4be1bf75021d13826ff1": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "DescriptionStyleModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "StyleView",
"description_width": ""
}
},
"dbd12d44ada7410581f4f9a0532556ae": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "SceneModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "SceneModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"autoUpdate": true,
"background": "#ffffff",
"castShadow": false,
"children": [
"IPY_MODEL_73da99c3a634410489b3217005de4267",
"IPY_MODEL_8884a15509704f418e3baf747c978f21",
"IPY_MODEL_af00878bc86e4811880053a056956e85"
],
"fog": null,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"overrideMaterial": null,
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Scene",
"up": [
0,
1,
0
],
"visible": true
}
},
"de9fe104a3bf4d968e0b2a14fec64d3f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HTMLModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_1533304550944d8d95be6c339fc5f52c",
"placeholder": "",
"style": "IPY_MODEL_26658e529d884939a63a46946fb3b6ed",
"value": " 5000/5000 [02:08<00:00, 64.48it/s, loss=0.000423]"
}
},
"e18fcaef8e8f439f829be72913b09838": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"e214829b89954685acf6c145ed2f2ca0": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "uint32",
"shape": [
18864
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"e341313ad08d4122b0165faec7573670": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "DirectionalLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "DirectionalLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "white",
"frustumCulled": true,
"intensity": 0.6,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": true,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
19.5,
18.427691280841827,
104.95571972235538
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"shadow": "IPY_MODEL_57412789-c56b-4d0c-b561-33ca19160cd4",
"target": "IPY_MODEL_db90d448-a8f1-4067-904d-c535f2b8c0f1",
"type": "DirectionalLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"e5b98d80b35c4ea4afc5a349a33dd33d": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "MeshModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "MeshModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"drawMode": "TrianglesDrawMode",
"frustumCulled": true,
"geometry": "IPY_MODEL_5cf9d8a7f8244396b95182325f948b20",
"material": "IPY_MODEL_96642999f3d84e48b06360efda7b7d53",
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"morphTargetInfluences": [],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0,
0,
0
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "Mesh",
"up": [
0,
1,
0
],
"visible": true
}
},
"e6c32731ffd94a6f995b0ed0b6b1ffd0": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "FloatProgressModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "FloatProgressModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "ProgressView",
"bar_style": "success",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_95271048ab31446b9402bf0aeda5b24d",
"max": 5000,
"min": 0,
"orientation": "horizontal",
"style": "IPY_MODEL_492ff3d421e346a08c14ffcfe5936ed4",
"value": 5000
}
},
"e7411a12b6e74aa38b8993650bb01f9a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "1.2.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "1.2.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"overflow_x": null,
"overflow_y": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"e78d9c9c6024421d8ebf899dfe9ed253": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "RendererModel",
"state": {
"_alpha": false,
"_antialias": true,
"_dom_classes": [],
"_height": 600,
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "RendererModel",
"_pause_autorender": false,
"_view_count": null,
"_view_module": "jupyter-threejs",
"_view_module_version": "^2.4.1",
"_view_name": "RendererView",
"_webgl_version": 2,
"_width": 600,
"autoClear": true,
"autoClearColor": true,
"autoClearDepth": true,
"autoClearStencil": true,
"background": "black",
"background_opacity": 1,
"camera": "IPY_MODEL_fd86e89f2ae34840930e97b98257ee2d",
"clearColor": "#000000",
"clearOpacity": 1,
"clippingPlanes": [],
"controls": [
"IPY_MODEL_00eb5a564a8142fd8aaa5a1bfe279867"
],
"gammaFactor": 2,
"gammaInput": false,
"gammaOutput": false,
"layout": "IPY_MODEL_2cf64c8ba4f446b38cc2b1f92922cb60",
"localClippingEnabled": false,
"maxMorphNormals": 4,
"maxMorphTargets": 8,
"physicallyCorrectLights": false,
"scene": "IPY_MODEL_c6340c75041b460c8440f20699d7b6cb",
"shadowMap": "IPY_MODEL_334daf4803474cf6a3d88c5c2fefdb49",
"sortObject": true,
"toneMapping": "LinearToneMapping",
"toneMappingExposure": 1,
"toneMappingWhitePoint": 1
}
},
"ef4250deb7be4c5db17a28dc05566477": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "HTMLModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/controls",
"_model_module_version": "1.5.0",
"_model_name": "HTMLModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/controls",
"_view_module_version": "1.5.0",
"_view_name": "HTMLView",
"description": "",
"description_tooltip": null,
"layout": "IPY_MODEL_1c626e98e1a0446e8d70b53d74e0958f",
"placeholder": "",
"style": "IPY_MODEL_d71b0598ce5f4be1bf75021d13826ff1",
"value": "Training: 100%"
}
},
"f6ddac9617d14a3995ef687f28439061": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "BufferAttributeModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "BufferAttributeModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"array": {
"dtype": "uint32",
"shape": [
28668
]
},
"dynamic": false,
"needsUpdate": false,
"normalized": false,
"version": 1
}
},
"f96246e78f1241d4a3bd704c5bce4122": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "PerspectiveCameraModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "PerspectiveCameraModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"aspect": 1,
"castShadow": false,
"children": [
"IPY_MODEL_49da82c6bb59404ab91092e0d87c12d7"
],
"far": 2000,
"focus": 83.31043859573917,
"fov": 30,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
-4.264428010083962e-17,
0,
0,
4.264428010083962e-17,
1,
0,
18.959218978881836,
16.472333371639255,
98.343185685602,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
-4.264428010083962e-17,
0,
0,
4.264428010083962e-17,
1,
0,
18.959218978881836,
16.472333371639255,
98.343185685602,
1
],
"matrixWorldInverse": [
1,
0,
0,
0,
0,
1,
4.264428010083962e-17,
0,
0,
-4.264428010083962e-17,
1,
0,
-18.959218978881836,
-16.47233337163925,
-98.343185685602,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"near": 0.1,
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
31.831329090400175,
-65.0175895768844,
26.622847095258457
],
"projectionMatrix": [
3.7320508075688776,
0,
0,
0,
0,
3.7320508075688776,
0,
0,
0,
0,
-1.00010000500025,
-1,
0,
0,
-0.200010000500025,
0
],
"quaternion": [
0.5749131396136554,
0.31609361153197446,
-0.2559678212822491,
0.7099578755928138
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
-4.264428010083962e-17,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "PerspectiveCamera",
"up": [
0,
1,
0
],
"visible": true,
"zoom": 1
}
},
"fb0e1201299146d0907726ba0a1671b8": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "DirectionalLightModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "DirectionalLightModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"castShadow": false,
"children": [],
"color": "white",
"frustumCulled": true,
"intensity": 0.6,
"matrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"matrixWorldNeedsUpdate": true,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
0.021650314331054688,
21.444747924804688,
342.955479493203
],
"quaternion": [
0,
0,
0,
1
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
0,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"shadow": "IPY_MODEL_648c0713-3da2-4f66-ac3f-a20cc0f211e6",
"target": "IPY_MODEL_0ad486d4-583d-4e67-b11a-fec060310aa0",
"type": "DirectionalLight",
"up": [
0,
1,
0
],
"visible": true
}
},
"fd86e89f2ae34840930e97b98257ee2d": {
"model_module": "jupyter-threejs",
"model_module_version": "^2.4.1",
"model_name": "PerspectiveCameraModel",
"state": {
"_model_module": "jupyter-threejs",
"_model_module_version": "^2.4.1",
"_model_name": "PerspectiveCameraModel",
"_view_count": null,
"_view_module": null,
"_view_module_version": "",
"_view_name": null,
"aspect": 1,
"castShadow": false,
"children": [
"IPY_MODEL_07b60692e5db42c4b77a5bc9e5696c6b"
],
"far": 2000,
"focus": 86.09200421115203,
"fov": 30,
"frustumCulled": true,
"matrix": [
1,
0,
0,
0,
0,
1,
-4.126647661828154e-17,
0,
0,
4.126647661828154e-17,
1,
0,
19.5,
16.319141387939457,
100.80268201371474,
1
],
"matrixAutoUpdate": true,
"matrixWorld": [
1,
0,
0,
0,
0,
1,
-4.126647661828154e-17,
0,
0,
4.126647661828154e-17,
1,
0,
19.5,
16.319141387939457,
100.80268201371474,
1
],
"matrixWorldInverse": [
1,
0,
0,
0,
0,
1,
4.126647661828154e-17,
0,
0,
-4.126647661828154e-17,
1,
0,
-19.5,
-16.319141387939453,
-100.80268201371474,
1
],
"matrixWorldNeedsUpdate": false,
"modelViewMatrix": [
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1
],
"name": "",
"near": 0.1,
"normalMatrix": [
1,
0,
0,
0,
1,
0,
0,
0,
1
],
"position": [
21.00455405074875,
-127.4623379039908,
14.77373730094787
],
"projectionMatrix": [
3.7320508075688776,
0,
0,
0,
0,
3.7320508075688776,
0,
0,
0,
0,
-1.00010000500025,
-1,
0,
0,
-0.200010000500025,
0
],
"quaternion": [
0.5076820646545949,
0.49197524723284136,
-0.48684959610807865,
0.5130270442263577
],
"receiveShadow": false,
"renderOrder": 0,
"rotation": [
-4.126647661828154e-17,
0,
0,
"XYZ"
],
"scale": [
1,
1,
1
],
"type": "PerspectiveCamera",
"up": [
0,
1,
0
],
"visible": true,
"zoom": 1
}
}
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}