# Makie - 3D mesh visualization of surface

**URL:** https://discourse.julialang.org/t/makie-3d-mesh-visualization-of-surface/63306
**Category:** Visualization
**Tags:** makie
**Created:** [June 21, 2021, 3:00pm UTC](https://discourse.julialang.org/t/makie-3d-mesh-visualization-of-surface/63306 "2021-06-21T15:00:43Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![paurierap](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paurierap/32/25232_2.png) [@paurierap](https://discourse.julialang.org/u/paurierap)
#### Post date: [June 21, 2021, 3:00pm UTC](https://discourse.julialang.org/t/makie-3d-mesh-visualization-of-surface/63306/1 "2021-06-21T15:00:43Z")

</div>

Hi all,

I am trying to plot the boundary of a rectangular 3D mesh with `Gridap` types. After the conversion to a `Mesh` type in GeometryBasics, my grid looks like this:

```julia
Mesh{3, Float64, Triangle}:
 Triangle([0.0, 0.0, 0.0], [0.1, 0.0, 0.0], [0.0, 0.1, 0.0])
 Triangle([0.0, 0.0, 0.0], [0.0, 0.1, 0.0], [0.0, 0.1, 0.2])
 Triangle([0.0, 0.0, 0.0], [0.1, 0.0, 0.0], [0.0, 0.0, 0.2])
 Triangle([0.0, 0.0, 0.0], [0.0, 0.0, 0.2], [0.0, 0.1, 0.2])
 Triangle([0.1, 0.0, 0.0], [0.0, 0.1, 0.0], [0.1, 0.1, 0.0])
 Triangle([0.1, 0.0, 0.0], [0.0, 0.0, 0.2], [0.1, 0.0, 0.2])
 Triangle([0.1, 0.0, 0.0], [0.2, 0.0, 0.0], [0.1, 0.1, 0.0])
 Triangle([0.1, 0.0, 0.0], [0.2, 0.0, 0.0], [0.1, 0.0, 0.2])
 Triangle([0.2, 0.0, 0.0], [0.1, 0.1, 0.0], [0.2, 0.1, 0.0])
 Triangle([0.2, 0.0, 0.0], [0.1, 0.0, 0.2], [0.2, 0.0, 0.2])
 ⋮
 Triangle([1.3, 1.0, 1.8], [1.4000000000000001, 1.0, 1.8], [1.3, 1.0, 2.0])
 Triangle([1.4000000000000001, 1.0, 1.8], [1.3, 1.0, 2.0], [1.4000000000000001, 1.0, 2.0])
 Triangle([1.3, 0.9, 2.0], [1.4000000000000001, 0.9, 2.0], [1.3, 1.0, 2.0])
 Triangle([1.4000000000000001, 0.9, 2.0], [1.3, 1.0, 2.0], [1.4000000000000001, 1.0, 2.0])
 Triangle([1.4000000000000001, 1.0, 1.8], [1.5, 1.0, 1.8], [1.4000000000000001, 1.0, 2.0])
 Triangle([1.5, 0.9, 1.8], [1.5, 1.0, 1.8], [1.5, 1.0, 2.0])
 Triangle([1.5, 1.0, 1.8], [1.4000000000000001, 1.0, 2.0], [1.5, 1.0, 2.0])
 Triangle([1.4000000000000001, 0.9, 2.0], [1.5, 0.9, 2.0], [1.4000000000000001, 1.0, 2.0])
 Triangle([1.5, 0.9, 1.8], [1.5, 0.9, 2.0], [1.5, 1.0, 2.0])
 Triangle([1.5, 0.9, 2.0], [1.4000000000000001, 1.0, 2.0], [1.5, 1.0, 2.0])

```

Nevertheless, I try to plot it with `mesh` with no success, returning a `MethodError: no method matching iterate(::Nothing)`. On the other hand, using `normal_mesh` on the converted grid returns:

```julia
Mesh{3, Float32, Triangle}:
 Triangle(Float32[0.0, 0.0, 0.0], Float32[0.1, 0.0, 0.0], Float32[0.0, 0.1, 0.0])
 Triangle(Float32[0.0, 0.0, 0.0], Float32[0.0, 0.1, 0.0], Float32[0.0, 0.1, 0.2])
 Triangle(Float32[0.0, 0.0, 0.0], Float32[0.1, 0.0, 0.0], Float32[0.0, 0.0, 0.2])
 Triangle(Float32[0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.2], Float32[0.0, 0.1, 0.2])
 Triangle(Float32[0.1, 0.0, 0.0], Float32[0.0, 0.1, 0.0], Float32[0.1, 0.1, 0.0])
 Triangle(Float32[0.1, 0.0, 0.0], Float32[0.0, 0.0, 0.2], Float32[0.1, 0.0, 0.2])
 Triangle(Float32[0.1, 0.0, 0.0], Float32[0.2, 0.0, 0.0], Float32[0.1, 0.1, 0.0])
 Triangle(Float32[0.1, 0.0, 0.0], Float32[0.2, 0.0, 0.0], Float32[0.1, 0.0, 0.2])
 Triangle(Float32[0.2, 0.0, 0.0], Float32[0.1, 0.1, 0.0], Float32[0.2, 0.1, 0.0])
 Triangle(Float32[0.2, 0.0, 0.0], Float32[0.1, 0.0, 0.2], Float32[0.2, 0.0, 0.2])
 ⋮
 Triangle(Float32[1.3, 1.0, 1.8], Float32[1.4, 1.0, 1.8], Float32[1.3, 1.0, 2.0])
 Triangle(Float32[1.4, 1.0, 1.8], Float32[1.3, 1.0, 2.0], Float32[1.4, 1.0, 2.0])
 Triangle(Float32[1.3, 0.9, 2.0], Float32[1.4, 0.9, 2.0], Float32[1.3, 1.0, 2.0])
 Triangle(Float32[1.4, 0.9, 2.0], Float32[1.3, 1.0, 2.0], Float32[1.4, 1.0, 2.0])
 Triangle(Float32[1.4, 1.0, 1.8], Float32[1.5, 1.0, 1.8], Float32[1.4, 1.0, 2.0])
 Triangle(Float32[1.5, 0.9, 1.8], Float32[1.5, 1.0, 1.8], Float32[1.5, 1.0, 2.0])
 Triangle(Float32[1.5, 1.0, 1.8], Float32[1.4, 1.0, 2.0], Float32[1.5, 1.0, 2.0])
 Triangle(Float32[1.4, 0.9, 2.0], Float32[1.5, 0.9, 2.0], Float32[1.4, 1.0, 2.0])
 Triangle(Float32[1.5, 0.9, 1.8], Float32[1.5, 0.9, 2.0], Float32[1.5, 1.0, 2.0])
 Triangle(Float32[1.5, 0.9, 2.0], Float32[1.4, 1.0, 2.0], Float32[1.5, 1.0, 2.0])

```

which can now be plotted with `mesh`. Why does Makie recognize the latter but not the former?

---

<div class="post-metadata">

### Author: ![empet](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/empet/32/221303_2.png) [@empet](https://discourse.julialang.org/u/empet)
#### Post date: [June 21, 2021, 5:11pm UTC](https://discourse.julialang.org/t/makie-3d-mesh-visualization-of-surface/63306/2 "2021-06-21T17:11:34Z")

</div>

For a mesh, a Triangle is a vector of three integers. [3, 7, 1] means that the corresponding triangle has as vertices the points of index 3, 7, 1. In your posted triangles, each vector has Float32 coordinates.
