kolibril13 commited on
Commit
c39c430
1 Parent(s): 8428332

add molecular

Browse files
Files changed (1) hide show
  1. pages/01_widget.ipynb +34 -8
pages/01_widget.ipynb CHANGED
@@ -11,25 +11,51 @@
11
  "from anywidget_3dviewer import Viewer\n",
12
  "import solara\n",
13
  "from pathlib import Path\n",
 
 
 
14
  "\n",
15
  "\n",
16
  "def make_gltf_model():\n",
17
  " bpy.ops.preferences.addon_enable(module=\"io_scene_gltf2\")\n",
 
 
18
  " bpy.ops.object.select_all(action=\"DESELECT\")\n",
19
  " bpy.ops.object.select_by_type(type=\"MESH\")\n",
20
- "\n",
21
  " bpy.ops.object.delete()\n",
22
- " bpy.ops.mesh.primitive_cube_add(size=2, align=\"WORLD\", location=(0, 1, 1))\n",
23
- " cube = bpy.context.active_object\n",
24
- " gltf_path = \"./model_cube.gltf\"\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  " bpy.ops.object.select_all(action=\"DESELECT\")\n",
26
- " cube.select_set(True)\n",
 
 
27
  " bpy.ops.export_scene.gltf(\n",
28
- " filepath=gltf_path, export_format=\"GLTF_EMBEDDED\", use_selection=True\n",
29
  " )\n",
30
- " gltf_path = Path() / \"model_cube.gltf\"\n",
31
- " data = gltf_path.read_bytes()\n",
 
32
  " gltf_path.unlink()\n",
 
33
  " return data\n",
34
  "\n",
35
  "\n",
 
11
  "from anywidget_3dviewer import Viewer\n",
12
  "import solara\n",
13
  "from pathlib import Path\n",
14
+ "import molecularnodes as mn\n",
15
+ "\n",
16
+ "\n",
17
  "\n",
18
  "\n",
19
  "def make_gltf_model():\n",
20
  " bpy.ops.preferences.addon_enable(module=\"io_scene_gltf2\")\n",
21
+ "\n",
22
+ " # Delete all mesh objects from the scene\n",
23
  " bpy.ops.object.select_all(action=\"DESELECT\")\n",
24
  " bpy.ops.object.select_by_type(type=\"MESH\")\n",
 
25
  " bpy.ops.object.delete()\n",
26
+ "\n",
27
+ " obj = mn.load.molecule_rcsb(\"106M\", starting_style=\"cartoon\", center_molecule=True)\n",
28
+ " obj.scale = [10, 10, 10]\n",
29
+ "\n",
30
+ " bpy.context.view_layer.objects.active = obj\n",
31
+ " obj.modifiers[\"MolecularNodes\"].node_group.nodes[\"MN_color_attribute_random\"].inputs[\"Lightness\"].default_value = 0.5\n",
32
+ " obj.modifiers[\"MolecularNodes\"].node_group.nodes[\"MN_color_attribute_random\"].inputs[\"Saturation\"].default_value = 1\n",
33
+ " obj.modifiers[\"MolecularNodes\"].node_group.nodes[\"MN_color_attribute_random\"].inputs[\"Seed\"].default_value = 1\n",
34
+ "\n",
35
+ " for modifier in obj.modifiers:\n",
36
+ " bpy.ops.object.modifier_apply(modifier=modifier.name)\n",
37
+ " bpy.ops.geometry.color_attribute_render_set(name=\"Color\")\n",
38
+ "\n",
39
+ "\n",
40
+ " # Exporting the model to .glb format for Three.js\n",
41
+ " # Specify the path where you want to save the exported model\n",
42
+ " gltf_path = Path() / \"_MY_MODEL_DATA.gltf\"\n",
43
+ "\n",
44
+ " bpy.ops.geometry.color_attribute_render_set(name=\"Color\")\n",
45
+ "\n",
46
+ " # Select only the object\n",
47
  " bpy.ops.object.select_all(action=\"DESELECT\")\n",
48
+ " obj.select_set(True)\n",
49
+ "\n",
50
+ " # Export the selected obj object to a .glb file\n",
51
  " bpy.ops.export_scene.gltf(\n",
52
+ " filepath=str(gltf_path), export_format=\"GLTF_EMBEDDED\", use_selection=True\n",
53
  " )\n",
54
+ "\n",
55
+ " data = gltf_path.read_text()\n",
56
+ "\n",
57
  " gltf_path.unlink()\n",
58
+ "\n",
59
  " return data\n",
60
  "\n",
61
  "\n",