Modelling and Analysis of Non-linear Cablenet Structures using Python and Blender

Learn how to combine parametric modelling, exploratory form-finding and iterative analysis techniques to simulate 3D tensile structures.

🔒 All Access Exclusive
Play Video about Modelling-and-analysis-of-non-linear-3D-cablenet-tensile-structures-in-Python_600 | DegreeTutors.com


What you'll learn

You will have developed a complete modelling, analysis and visualisation workflow for exploring these elegant yet complex structures.
You will be able to apply parametric modelling and simulation-based form-finding techniques to generate cablenet geometry.
You will be able to apply an iterative Newton-Raphson technique to solve for the non-linear behaviour of 3D cablenet structures.
You will understand how the behaviour of lightweight tensile structures leads to geometric non-linearity.


Description

After completing this course you’ll have developed a complete workflow for the modelling and analysis of non-linear 3D cablenet structures.
We’ll expand beyond what we covered in our study of 2D non-linear cables by adapting the tools we built previously, for the analysis of non-linear 3D cablenet structures.
However, instead of just modifying our existing code, we’ll spend time fleshing out a complete workflow that takes you from initial form-finding of cablenet geometry, right through to iterative stiffness method simulation to identify the cablenet deflections and tension profile.
We can’t embark on the analysis of cablenet structures without making reference to the ‘Godfather’ of cablenet structures, the Architect and Engineer Frei Otto (1925-2015). In fact, we’ll use two of his early tensile structures as the basis for our main case studies.
If you’re intrigued by these elegant and efficient structures and want to understand how to analyse their behaviour, this course is for you. Keep in mind that the tools developed in this course are not meant to be a replacement for commercial non-linear solvers. Our objective is to build your understanding of the behaviour of cablenet structures and geometric non-linearity more generally. The best way to do this is to roll up your sleeves and build your own solver. After taking this course, you’ll be able to use commercial software which a much greater degree of confidence that you understand what’s happening behind the scenes.
While we’re not trying to rebuild SAP2000 or ETABS, when you complete this course you’ll have a range of standalone analysis notebooks. The code developed within each section of the course is also provided for download as a reference.


Course prerequisites

This course picks up where the previous course, Non-linear finite element analysis of 2D catenary & cable structures using Python, left off. You should consider that course a strict prerequisite for this one.
We’ll be using the code developed in that prerequisite course as our starting point in this course. While we’ll recap the key concepts and logic of our iterative solver, we’ll avoid going over old ground in this course. So, even more so than usual, this prerequisite is strongly advised.
If you’ve covered the prerequisite course, you won’t have any trouble with the Python we implement in this course. We’ll develop our Python code using the versatile Jupyter development environment. Unlike the prerequisite course, in this course we’ll use Jupyter Lab. If you’re not familiar with this, don’t worry, we’ll walk through getting Jupyter Lab up and running on your machine.


Course Breakdown

Section 1: Introduction, Course Breakdown & Prerequisites

In this first section, we’ll get our bearings by taking a look at the course structure. This will give you a good idea of what to expect. We’ll also introduce our main focus for this course – cablenet structures. This will provide some context for the technical analysis to follow. This course assumes that you’ve completed the prerequisite course on 2D cable analysis; we’ll elaborate on why it’s critical that you cover that course first if you want to get the most from this course.

Section 2: Developing the 3D non-linear stiffness matrix

In this section, we’ll take the theory used to develop the 2D non-linear stiffness matrix and extend that to 3D. This really involves two steps; updating how we calculate the element transformation matrix and then updating the local element stiffness matrix. The task here isn’t difficult, the hard work was done in establishing the 2D stiffness matrix in the prerequisite course. We’ll focus on whiteboarding the theory here before diving into code a little later.

Section 3: Extending our Blender Utility Scripts

Blender is a trusty 3D Swiss army knife that makes all of this modelling possible. So, since we’re moving from 2D to 3D, we’ll need to update some of the utility scripts we wrote previously for data import and export. It won’t be all coding in this section, we’ll dabble in some 3D modelling and generate our first simple cablenet model to serve as our test-bed structure for the next section.

Section 4: Extending our solver toolbox from 2D to 3D

Now it’s time to roll up our sleeves and dive into our main solver code. In this section, we’re going to be doing the bulk of the work to update the 2D solver we wrote previously. We’ll also be implementing all of the transformation and stiffness matrix theory we discussed earlier. Once you’ve completed this section you’ll have converted your 2D cable analysis code into a 3D solver…and we can start experimenting with some structures.

Section 5: Cable-stayed antenna tower…in 3D

When we studied 2D cable analysis previously, we analysed a 2D cable-stayed antenna tower. So, now that we’ve built ourselves a 3D toolbox, the obvious first task is to build a bigger 3D cable-stayed lattice tower to see how our solver crunches through that! This section will be our first complete run-through of the analysis workflow, from modelling in Blender, to analysis in our solver to results visualisation back over in Blender.
Tower-analysis | DegreeTutors.com

Section 6: Parametric modelling and form-finding in Blender

In this section, we’ll focus on how we can get the most out of Blender’s modelling and simulation tools. We’ll start by exploring Blender’s cloth simulation tools, one of Blender’s many physics engine toolboxes. Although this tool is not designed for structural simulation, it serves as an excellent way of approximating net and membrane geometry which we can use as a starting point for our structural analysis.

We’ll also explore a relatively new feature in Blender; geometry nodes. This functionality gives us the ability to procedurally model and parameterise our geometry. This will be a taster on geometry nodes – after which you can decide if you want to investigate further beyond this course.

This process of exploratory form-finding is one of the most creative and enjoyable parts of studying these structures and serves as a nice counter-balance to our focus on programming and mechanics!

Parametric-modelling | DegreeTutors.com

Section 7: Cablenet Pavillion – Hyperbolic Paraboloid

In this section, we’ll bring together our 3D solver with what we’ve learned about form-finding using Blender’s simulation tools. We’ll focus on the modelling and analysis of a hyperbolic paraboloid cablenet structure. For the structure itself, we’ll draw inspiration from a fabric membrane structure by Frei Otto from 1955.

This will give us a good opportunity to discuss the relationship between form-finding and pre-tension. Again, this will be another good demonstration of the typical modelling-analysis-visualisation workflow.

Ceblenet Pavillion analysis | DegreeTutors.com

Section 8:Frei Otto’s Dancing Fountain in Cablenet form

In this final section, we’ll use everything we’ve learned so far to build a model of one of Frei Otto’s finest membrane structures, the so-called ‘Dancing Fountain’ from the Cologne Federal Garden Exhibition in 1957.

We’ll use all of the tools at our disposal to build the initial geometry, simulate the minimum surface under tension and then analyse the cablenet force distribution under self-weight. Naturally, we’ll bring it all back into Blender for final visualisation.

The successful completion of this structure sets a great high-water mark for your understanding of cablenet structures and of the tools you’ve just built. This should leave you confident enough to explore the behaviour of non-linear cablenet structures in the wild.


Who this course is for

  • Students and professional engineers who have completed the 2D non-linear cable analysis course and want to expand into 3D non-linear cablenet structures.
  • Students and professional engineers who want to learn more about how to implement iterative methods of analysis in Python.
The codes developed in this course are for educational purposes only and are not tested or certified for use beyond the educational scope of this course. Always employ your own engineering judgement first and foremost, regardless of what the computer says!

Course Completion Certificate

Certificate of Completion 18 | DegreeTutors.com
  • Download your personalised Certificate of Completion once you’ve finished all course lectures.
  • Applying for jobs? Use your Certificate of Completion to show prospective employers what you’ve been doing to improve your capabilities.
  • Independently completing an online course is an achievement. Let people know about it by posting your Certificate of Completion on your Linkedin profile or workplace CPD portfolio.


Course preview

Lecture 1: Introduction and Course Overview

Lecture 4: Cablenet Structures

Play Video about Course overview_TN600 | DegreeTutors.com
Play Video about Cablenet Structures_Vid-1_600


Course content

Introduction, Course Breakdown & Prerequisites

3D Cablenet Analysis 1 | DegreeTutors.com
Introduction and course overview (Preview)
(06:37)
3D Cablenet Analysis - 2 | DegreeTutors.com
Course prerequisites (Preview)
(02:17)
3D Cablenet Analysis 3 | DegreeTutors.com
Setting up JupyterLab
(06:52)
3D Cablenet Analysis 4 | DegreeTutors.com
Cablenet structures (Preview)
(31:25)

Developing the 3D non-linear stiffness matrix

3D Cablenet Analysis 5 | DegreeTutors.com
Section overview (Preview)
(01:12)
3D Cablenet Analysis 6 | DegreeTutors.com
Building the 3D transformation matrix
(18:18)
3D Cablenet Analysis 7 | DegreeTutors.com
Extending the non-linear stiffness matrix
(10:55)

Extending our Blender Utility Scripts

3D Cablenet Analysis 8 | DegreeTutors.com
Section overview (Preview)
(01:17)
3D Cablenet Analysis 9 | DegreeTutors.com
Generate a simple cablenet
(07:02)
3D Cablenet Analysis 10 | DegreeTutors.com
Extending our Blender export scripts
(10:00)
3D Cablenet Analysis 11 | DegreeTutors.com
Visualising axial forces and deflections in Blender
(14:17)

Extending our solver toolbox from 2D to 3D

3D Cablenet Analysis 12 | DegreeTutors.com
Section overview (Preview)
(01:33)
3D Cablenet Analysis 13 | DegreeTutors.com
Updating our notebook structure
(15:16)
3D Cablenet Analysis 14 | DegreeTutors.com
Basic updates to our preprocessing code
(07:40)
3D Cablenet Analysis 15 | DegreeTutors.com
Implementing a basic 3D plot
(10:03)
3D Cablenet Analysis 16 | DegreeTutors.com
Fixing the 3D scale problem
(08:38)
3D Cablenet Analysis 17 | DegreeTutors.com
Implement support type visualisation
(10:16)
3D Cablenet Analysis 18 | DegreeTutors.com
Implementing 3D arrows
(12:56)
3D Cablenet Analysis 19 | DegreeTutors.com
Implementing 3D annotations
(11:47)
3D Cablenet Analysis 20 | DegreeTutors.com
Building the transformation matrix
(15:58)
3D Cablenet Analysis 21 | DegreeTutors.com
Calculating the pre-tension force vector
(01:46)
3D Cablenet Analysis 22 | DegreeTutors.com
Building the stiffness matrix
(06:30)
3D Cablenet Analysis 23 | DegreeTutors.com
Calculating the internal force system and axial forces
(06:18)
3D Cablenet Analysis 24 | DegreeTutors.com
Recap of the main loop logic
(26:16)
3D Cablenet Analysis 25 | DegreeTutors.com
Updating the results plot – phase 1
(21:58)
3D Cablenet Analysis 26 | DegreeTutors.com
Updating the results plot – phase 2
(23:40)
3D Cablenet Analysis 27 | DegreeTutors.com
Updating the results plot – phase 3
(14:58)
3D Cablenet Analysis 28 | DegreeTutors.com
Using Pandas DataFrames to represent our data
(24:15)
3D Cablenet Analysis 29 | DegreeTutors.com
Visualising deflection and axial force data in Blender
(16:40)

Cable-stayed antenna tower…in 3D

3D Cablenet Analysis 30 | DegreeTutors.com
Section overview (Preview)
(01:06)
3D Cablenet Analysis 31 | DegreeTutors.com
Model generation in Blender
(21:00)
3D Cablenet Analysis 32 | DegreeTutors.com
Solving the antenna tower
(13:21)
3D Cablenet Analysis 33 | DegreeTutors.com
Saving and exporting all simulation data
(15:11)
3D Cablenet Analysis 34 | DegreeTutors.com
Building a results viewer notebook
(20:21)

Parametric modelling and form-finding in Blender

3D Cablenet Analysis 35 | DegreeTutors.com
Section overview (Preview)
(01:24)
3D Cablenet Analysis 36 | DegreeTutors.com
 Simulation initial geometry in Blender – Part 1
(38:02)
3D Cablenet Analysis 37 | DegreeTutors.com
Simulation initial geometry in Blender – Part 2
(25:09)
3D Cablenet Analysis 38 | DegreeTutors.com
The relationship between form-finding and pre-tension
(13:49)
3D Cablenet Analysis 39 | DegreeTutors.com
Procedural modelling with geometry nodes [Optional]
(37:21)

Cablenet Pavillion - Hyperbolic Paraboloid

3D Cablenet Analysis 40 | DegreeTutors.com
Section overview (Preview)
(01:00)
3D Cablenet Analysis 41 | DegreeTutors.com
Accommodating different cable types
(12:41)
3D Cablenet Analysis 42 | DegreeTutors.com
Generating initial geometry and pre-tension
(28:12)
3D Cablenet Analysis 43 | DegreeTutors.com
Analysis iteration 1 – Establishing pre-tension
(21:00)
3D Cablenet Analysis 44 | DegreeTutors.com
Analysis iteration 2 – Adding props and stay cables
(08:06)

Frei Otto's Dancing Fountain in Cablenet form

3D Cablenet Analysis 45 | DegreeTutors.com
Section overview (Preview)
(01:35)
3D Cablenet Analysis 46 | DegreeTutors.com
Form-finding the initial geometry
(38:02)
3D Cablenet Analysis 47 | DegreeTutors.com
Roof pre-tension simulation
(21:36)
3D Cablenet Analysis 48 | DegreeTutors.com
Full structure pre-tension simulation
(18:27)
3D Cablenet Analysis 49 | DegreeTutors.com
Applying load to the pre-tensioned structure
(23:38)
3D Cablenet Analysis 50 | DegreeTutors.com
Course wrap up
(02:47)


Appendix - Visualising Structural Data in Blender

Spaceframe structures 40 | DegreeTutors.com
Blender data-viz – Structure setup & force data
(19:02)
Spaceframe structures 41 | DegreeTutors.com
Blender data-viz – Blocking out the code
(22:56)
Spaceframe structures 42 | DegreeTutors.com
Blender data-viz – The transformation matrix
(22:00)
Spaceframe structures 43 | DegreeTutors.com
Blender data-viz – Generating materials from force data
(21:36)


Roadmap

Make sure to cover this first...

This is the 2D version of the current 3D cablenet course and should definitely be completed first. We’ll rely very heavily on the theory and code we developed in this prerequisite course, so make sure to start here.


Frequently Asked Questions

You have access to all DegreeTutors content for the duration of your membership subscription. You can cancel any time, and even resubscribe later if that suits your circumstances.

Absolutely. If you’re not satisfied, contact us in the first 30 days of your subscription and we’ll give you a full refund, no questions asked. It would be helpful if you could tell us how we can improve our membership for other students.

All DegreeTutors courses and content are hosted by Podia and require you to log in to stream the videos and download content. 

Yes! We’ve partnered with Podia, Stripe and Paypal to handle billing and provide a secure payment facility. DegreeTutors never directly handle or store your credit card information.

No problem, send a message through our contact page and we’ll be happy to answer any questions you have.