Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.


Computing Form and Shape: Python Programming with the Rhinoscript Library

Rhode Island School of Design via Kadenze


This course explores the role of computation in the conception and representation of form and shape. Learn Python programming language as a creative medium for design, architecture, art and beyond. Learners will develop, analyze and critique algorithmic approaches to digital drawing, modeling, and projection. Specifically, the powerful and robust Python Rhinoscript library will be introduced and explored in detail. This library allows Rhinoceros, the popular 3D graphics and computer-aided design (CAD) modeling software to be scripted with text-based code. Scripting in this manner can automate existing processes and can lead to novel kinds of relationships, and orders of shape and form.

Architects, sculptors, and any artist or designer interested in either fabrication or communication of form and shape will recognize the importance of projection–the the transformation of three-dimensional geometry onto a two-dimensional picture plane, cut sheet, paper, or screen. As a result, this course focuses not only on the generation of geometry, but the output of geometry.

In parallel to extending learners' technical proficiency, this course will touch on the conceptual and theoretical implications of algorithmic design. Each of the five lessons will build upon each other to develop an understanding of the Python language, algorithmic strategies, and digital geometric craft (the interrelated structures and topologies that make up digital models).


  • Deconstruction Of Surfaces, The Genesis Of Lines
    • How can a surface generate lines? How can lines represent a surface? This session begins with an important premise: a surface is a 2-D space organized in terms of 'U' and 'V' axes that can be treated similarly to 'X' and 'Y' axes in Cartesian space. This allows drawing “in” a surface, trimming a surface based on U/V domains and the evaluation of surfaces based on 2-D parameters. Demonstration: Growing lines based on surface normals; surface to surface lines.
  • The Project Of Projection
    • How can projection serve as a creative act? In this session you'll explore methods for geometrically constructing perspective computationally and use projective methods for the creation of new forms and shapes. Example tutorials will include constructing a set of perspectives using surface-plane intersection.
  • Curves vs. Curvature
    • What is the nature of a curve? In this session you'll learn multiple methods for creating and editing curves. You'll also explore concepts such as the “blip”, and the capacity of a set of curves to collectively define space. Example tutorials will show you how to create interpolated curves of various degrees before and after sorting; best fit circles; curve parameters, evaluating curves, and extraction of curve points for the purse of editing curves with looping.
  • Procedural Points, Python Basics, and Rhinoscript
    • Why design algorithmically? Answer this question and learn the basics of Python syntax and organization of the Rhinoscript library in this session. Create, run, and edit your first Python script while learning all about point coordinates and point objects through real-world demonstrations where we'll create procedural point spirals, gradient point clouds, and more.
  • The Depth Of A Surface
    • What is the nature of a surface? In this session you'll learn techniques for creating and editing surfaces beginning with the Rhinoscript functions that correspond with the most commonly used surface tools in Rhinoceros: loft, sweep1 and networksurface. Example tutorials will go into lofting and list-management and rebuilding surfaces in sequence.

Taught by

Carl Lostritto


5.0 rating, based on 1 Class Central review

Start your review of Computing Form and Shape: Python Programming with the Rhinoscript Library

  • Anonymous
    This course is very helpful in learning python in relation to geometry. As it is very rare to find such courses that are architectural oriented. The instructor builds the complexity gradually which teach the learner a lot by the end of each session.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.