kolibril13 commited on
Commit
27c51dc
·
1 Parent(s): d1d5d98

add widget

Browse files
Files changed (1) hide show
  1. pages/02_widget.ipynb +108 -0
pages/02_widget.ipynb ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": null,
6
+ "metadata": {},
7
+ "outputs": [],
8
+ "source": [
9
+ "import sys\n",
10
+ "import os\n",
11
+ "\n",
12
+ "sys.stdout = open(os.devnull, 'w')\n",
13
+ "sys.stderr = open(os.devnull, 'w')"
14
+ ]
15
+ },
16
+ {
17
+ "cell_type": "code",
18
+ "execution_count": null,
19
+ "metadata": {},
20
+ "outputs": [],
21
+ "source": [
22
+ "import bpy\n",
23
+ "from pathlib import Path\n",
24
+ "import molecularnodes as mn\n",
25
+ "from anywidget_3dviewer import Viewer\n",
26
+ "import solara\n",
27
+ "\n",
28
+ "# Ensure the glTF exporter is activated\n",
29
+ "bpy.ops.preferences.addon_enable(module=\"io_scene_gltf2\")\n",
30
+ "\n",
31
+ "# Delete all mesh objects from the scene\n",
32
+ "bpy.ops.object.select_all(action=\"DESELECT\")\n",
33
+ "bpy.ops.object.select_by_type(type=\"MESH\")\n",
34
+ "bpy.ops.object.delete()\n",
35
+ "\n",
36
+ "obj = mn.load.molecule_rcsb(\"7TYG\", starting_style=\"cartoon\", center_molecule=True)\n",
37
+ "obj.scale = [10, 10, 10]\n",
38
+ "\n",
39
+ "bpy.context.view_layer.objects.active = obj\n",
40
+ "obj.modifiers[\"MolecularNodes\"].node_group.nodes[\"MN_color_attribute_random\"].inputs[\"Lightness\"].default_value = 0.5\n",
41
+ "obj.modifiers[\"MolecularNodes\"].node_group.nodes[\"MN_color_attribute_random\"].inputs[\"Saturation\"].default_value = 1\n",
42
+ "obj.modifiers[\"MolecularNodes\"].node_group.nodes[\"MN_color_attribute_random\"].inputs[\"Seed\"].default_value = 1\n",
43
+ "\n",
44
+ "for modifier in obj.modifiers:\n",
45
+ " bpy.ops.object.modifier_apply(modifier=modifier.name)\n",
46
+ "bpy.ops.geometry.color_attribute_render_set(name=\"Color\")\n",
47
+ "\n",
48
+ "\n",
49
+ "# Exporting the model to .glb format for Three.js\n",
50
+ "# Specify the path where you want to save the exported model\n",
51
+ "gltf_path = Path() / \"_MY_MODEL_DATA.gltf\"\n",
52
+ "\n",
53
+ "bpy.ops.geometry.color_attribute_render_set(name=\"Color\")\n",
54
+ "\n",
55
+ "# Select only the object\n",
56
+ "bpy.ops.object.select_all(action=\"DESELECT\")\n",
57
+ "obj.select_set(True)\n",
58
+ "\n",
59
+ "# Export the selected obj object to a .glb file\n",
60
+ "bpy.ops.export_scene.gltf(\n",
61
+ " filepath=str(gltf_path), export_format=\"GLTF_EMBEDDED\", use_selection=True\n",
62
+ ")\n",
63
+ "\n",
64
+ "data = gltf_path.read_text()\n",
65
+ "\n",
66
+ "gltf_path.unlink()\n",
67
+ "\n",
68
+ "\n",
69
+ "\n",
70
+ "import solara\n",
71
+ "\n",
72
+ "viewer = Viewer(gltf_data=data)\n",
73
+ "@solara.component\n",
74
+ "def Page():\n",
75
+ " display(viewer)\n",
76
+ "Page()"
77
+ ]
78
+ },
79
+ {
80
+ "cell_type": "code",
81
+ "execution_count": null,
82
+ "metadata": {},
83
+ "outputs": [],
84
+ "source": []
85
+ }
86
+ ],
87
+ "metadata": {
88
+ "kernelspec": {
89
+ "display_name": ".venv",
90
+ "language": "python",
91
+ "name": "python3"
92
+ },
93
+ "language_info": {
94
+ "codemirror_mode": {
95
+ "name": "ipython",
96
+ "version": 3
97
+ },
98
+ "file_extension": ".py",
99
+ "mimetype": "text/x-python",
100
+ "name": "python",
101
+ "nbconvert_exporter": "python",
102
+ "pygments_lexer": "ipython3",
103
+ "version": "3.10.13"
104
+ }
105
+ },
106
+ "nbformat": 4,
107
+ "nbformat_minor": 2
108
+ }