# Unexpected extra faces with update\_boundaries in compas\_tna Form Diagram (Blender)

**URL:** <https://forum.compas-framework.org/t/unexpected-extra-faces-with-update-boundaries-in-compas-tna-form-diagram-blender/1067>\
**Category:** compas\_blender\
**Created:** [October 25, 2025, 10:55am UTC](https://forum.compas-framework.org/t/unexpected-extra-faces-with-update-boundaries-in-compas-tna-form-diagram-blender/1067 "2025-10-25T10:55:01Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![olivieroc](https://avatars.discourse-cdn.com/v4/letter/o/bbce88/32.png) [@olivieroc](https://forum.compas-framework.org/u/olivieroc)\
**Post date:** [October 25, 2025, 10:55am UTC](https://forum.compas-framework.org/t/unexpected-extra-faces-with-update-boundaries-in-compas-tna-form-diagram-blender/1067/1 "2025-10-25T10:55:01Z")

</div>

Hi all,

I’m experiencing an issue when using compas\_blender﻿ and compas\_tna﻿, and I would like some advice or clarification.

- I generate a Form Diagram as a meshgrid and define supports at the vertices.
- I use relax\_boundary\_openings﻿ to relax the mesh.
- When I run update\_boundaries﻿, extra faces are generated between supports in the Form Diagram.
- These extra faces are required for constructing the Force Diagram and ensuring both horizontal and vertical equilibrium, I guess

On compas\_notebook viewer﻿ these faces are not displayed, but in Blender, they remain visible as part of the mesh.

Is this the expected behavior?  
Is there any way to automatically remove or hide these faces in Blender, or to make Blender’s visualization consistent with the notebook viewer?

Thank you for any guidance or recommendations!

* * *

I am adding below the code and some reference images.

In Blender:

```auto
#Import dependencies

from compas_tna.diagrams import FormDiagram
from compas_tna.diagrams import ForceDiagram
from compas_tna.equilibrium import relax_boundary_openings
from compas_tna.equilibrium import horizontal_nodal
from compas_tna.equilibrium import vertical_from_zmax
from compas.scene import Scene

#Create Form Diagram
form: FormDiagram = FormDiagram.from_meshgrid(dx=10, nx=10)

#Add supports
corners: list[int] = list(form.vertices_where(vertex_degree=2))
form.vertices_attribute("is_support", True, keys=corners)

#Relax Form Diagram at boundary openings
form.edges_attribute("q", 10.0, keys=form.edges_on_boundary())
relax_boundary_openings(form, corners)

#Update boundaries
form.update_boundaries()

#Create Force Diagram
force = ForceDiagram.from_formdiagram(form)

#Find horizontal equilibrium
horizontal_nodal(form, force, kmax=100)

#Find vertical equilibrium
scale = vertical_from_zmax(form, 3.0)

#Create scene and add form diagram

scene = Scene()
scene.add(form)
scene.draw()

```

 ![immagine](https://us1.discourse-cdn.com/flex015/uploads/compas_framework1/original/1X/608f17542fab2c838f934c5af09b92ed647facf1.jpeg)

In Jupyter:

```auto
#Import dependencies

from compas_tna.diagrams import FormDiagram
from compas_tna.diagrams import ForceDiagram
from compas_tna.equilibrium import relax_boundary_openings
from compas_tna.equilibrium import horizontal_nodal
from compas_tna.equilibrium import vertical_from_zmax
from compas_notebook import Viewer

#Create Form Diagram
form: FormDiagram = FormDiagram.from_meshgrid(dx=10, nx=10)

#Add supports
corners: list[int] = list(form.vertices_where(vertex_degree=2))
form.vertices_attribute("is_support", True, keys=corners)

#Relax Form Diagram at boundary openings
form.edges_attribute("q", 10.0, keys=form.edges_on_boundary())
relax_boundary_openings(form, corners)

#Update boundaries
form.update_boundaries()

#Create Force Diagram
force = ForceDiagram.from_formdiagram(form)

#Find horizontal equilibrium
horizontal_nodal(form, force, kmax=100)

#Find vertical equilibrium
scale = vertical_from_zmax(form, 3.0)

#Create scene and add form diagram

viewer = Viewer()

viewer.scene.add(form)

viewer.show()

```

---

<div class="post-metadata">

**Author:** ![olivieroc](https://avatars.discourse-cdn.com/v4/letter/o/bbce88/32.png) [@olivieroc](https://forum.compas-framework.org/u/olivieroc)\
**Post date:** [October 25, 2025, 10:55am UTC](https://forum.compas-framework.org/t/unexpected-extra-faces-with-update-boundaries-in-compas-tna-form-diagram-blender/1067/2 "2025-10-25T10:55:55Z")

</div>

Here’s the result within Jupyter (new users are not allowed to add more than one media per post)

 ![immagine](https://us1.discourse-cdn.com/flex015/uploads/compas_framework1/original/1X/203fc06e401c2a3718a497b2a7f04ee111a02a5b.png)

---

<div class="post-metadata">

**Author:** ![tomvanmele](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.compas-framework.org/tomvanmele/32/13_2.png) [@tomvanmele](https://forum.compas-framework.org/u/tomvanmele)\
**Post date:** [October 29, 2025, 9:10am UTC](https://forum.compas-framework.org/t/unexpected-extra-faces-with-update-boundaries-in-compas-tna-form-diagram-blender/1067/3 "2025-10-29T09:10:50Z")

</div>

this is not a bug. these “extra” faces are part of the form diagram. they represent the open boundaries and have corresponding dual vertices in the force diagram.

`compas_tna` registers a form diagram scene object for the notebook scene that automatically removes these faces during visualisation.

if a similar scene object would be registered for Blender scenes, the extra faces would be removed automatically there as well.

in the meantime, in Blender, you can just do:

```python
faces = list(form.faces_where(_is_loaded=True))
edges = list(form.edges_where(_is_edge=True))

scene.add(form, show_faces=faces, show_edges=edges)

```

---

<div class="post-metadata">

**Author:** ![olivieroc](https://avatars.discourse-cdn.com/v4/letter/o/bbce88/32.png) [@olivieroc](https://forum.compas-framework.org/u/olivieroc)\
**Post date:** [October 29, 2025, 9:09pm UTC](https://forum.compas-framework.org/t/unexpected-extra-faces-with-update-boundaries-in-compas-tna-form-diagram-blender/1067/4 "2025-10-29T21:09:01Z")

</div>

* * *

Thank you very much for your clear explanation.  
That clarifies perfectly why the extra faces appear and how the notebook viewer handles them differently.  
I appreciate the tip about the scene object registration for Blender scenes — I’ll look into implementing that to improve visualization consistency.

Thanks again for your help!
