Compass Learning Technologies

Home TI-Nspire Authoring TI-Nspire STEM HQ Lua Scripting HQ Lua Scripting Tutorials


TI-Nspire Lua Scripting Tutorials

Texas Instruments TI-Nspire Scripting Support Page


Lua Scripting Quick Start

As part of European Coding Week (October 2015), these three video tutorials touch briefly on key aspects of Lua Scripting for TI-Nspire, from beginner, through intermediate to advanced topics. Follow along, pausing the videos frequently to try out the ideas shown, and then work carefully through the tutorials that follow to make sure you cover all that you need to know to create powerful documents for teaching and learning using Lua and TI-Nspire.

Introduction to Lua Scripting: Video 1 (57 minutes): Painting text and simple graphics to the screen, controlling movement of screen objects.

Introduction to Lua Scripting: Video 2 (59 minutes): Linking to TI-Nspire variables, and building documents by inserting pre-made screen objects (buttons, sliders, controls...)

Introduction to Lua Scripting: Video 3 (56 minutes): Using the timer to create animations, working with images, and simple BlueTooth controls.

Supporting Files:


If you would like a taste of Lua without leaving your browser, feel free to visit and explore the Lua JavaScript page. This offers a sampler of documents that you can try by clicking the "run your code" button. You can even try out your own code using the OnLine Lua Script Editor. This work, based on the great efforts of Jim Bauwens from Belgium, is still very much a work in progress... but it does work (mostly) on iOS (iPads and iPhones) and Android tablets, as well as the more usual platforms!

You may also wish to do some Lua scripting on your TI-Nspire handheld. In addition to the excellent Oclua (On-Calculator LUA), developed by Olivier Armand, we now have another option that promises great things: TIDE (TI-Integrated Development Environment), currently in development by Nadrieril Feneanar . This offers a scripting page and a Lua page, which automatically picks up the script as you write it. Many of the tutorials that follow support these options.

And where to from here? Once you finish these lessons and want to go further, head across to the wonderful Nspired Lua website for their tutorials, documentation and wiki.


Getting Started with Lua and TI-Nspire: Introductory Tutorials

  • Lesson 1: First Steps with Lua and TI-Nspire

    on.paint, gc (graphics context), drawString, setFont, setColorRGB, platform.window:width, platform.window:height

  • Lesson 2: Creating a Dynamic Table

    tables, for loops, getStringWidth, getStringHeight, concatenation (..), displaying multiple lines, var.recall

  • Lesson 3: Varying the Table Contents

    if..then..else..end, equality (==) vs assignment (=), more on var.recall

  • Lesson 4: Capturing Input in your Lua Page

    on.charIn,, on.backspaceKey, string.usub, platform.window:invalidate, setPen, drawPolyLine, drawRect, on.enterKey

  • Lesson 5: Putting it all together: Some Applications

    page setup template, simple quiz document

  • Lesson 6: Quick Start: Controlling a Point on a Graph page

    on.arrowUp, on.arrowDown, on.arrowLeft, on.arrowRight,, timer.start, on.timer

  • Lesson 7: Quick Start: Working with Images in Lua, drawImage, image.width, image.height, image.copy, on.resize

  • Lesson 8: Quick Start: Getting Started with Graphics in Lua

    drawLine, fillRect, fillPolygon, drawArc, fillArc, isColorDisplay, setAlpha

  • Lesson 9: Graphical Shape Numbers

    Drawing an array, and varying the grid pattern

  • Lesson 10: Taking Shape Numbers Further

    Putting it all together, on.escapeKey, on.tabKey

  • Lesson 11: Introducing Classes

    class, init, contains, paint, selected, color table, unpack

  • Lesson 12: Mouse Controls with Classes

    on.mouseDown, on.mouseUp, on.mouseMove

  • Lesson 13: Keyboard Controls with Classes

    Using arrowKeys, enterKey, tabKey and escapeKey with classes

  • Lesson 14: Keyboard Controls with Multiple Classes

    Using a table to define multiple classes, #Objects (dimension of table Objects)

  • Lesson 15: Mouse Controls with Multiple Classes

    TrackOffset variables, table.remove, table.insert, cloning selected class objects

  • Lesson 16: Further Useful Tips and Tricks I

    Useful string commands: find, replace (gsub), split: applied to pretty print function for algebra

  • Lesson 17: Further Useful Tips and Tricks II

    math.eval (and all applied to fraction function along with a template for multiple keyPads)

  • Lesson 18: Further Useful Tips and Tricks III

    Adding your own custom menus.

  • Lesson 19: Guidelines for Lua Nspired Authoring I

    WORKING ACROSS PLATFORMS (Create Once Play Everywhere)

    1. Display Considerations: Looking Good Everywhere!

  • Lesson 20: Guidelines for Lua Nspired Authoring II

    WORKING ACROSS PLATFORMS (Create Once Play Everywhere)

    2. Control Considerations: Working Well Everywhere!


    The lessons in this next section require OS 3.2 functionality or higher.

  • Lesson 21: (3.2) Text Boxes and Rich Text Input

    The new and better way to enter and work with text as the user inputs it: Rich Text boxes come alive!

  • Lesson 22: (3.2) Create Your Own Math and Chem Boxes

    Displaying and evaluating mathematics has never been easier now that we can let TI-Nspire MathBoxes take care of the heavy lifting!

  • Lesson 23: (3.2) Welcome to the Physics Engine! (I)

    Based upon the open-source Chipmunk Physics Engine, this powerful new feature adds amazing possibilities to your Nspire scripting and is the perfect tool for creating simulations of all sorts.

  • Lesson 24: (3.2) Welcome to the Physics Engine! (II)

    Bouncing a ball around the screen maybe a very simple simulation, but it can be the start of something much bigger.

  • Lesson 25: (3.2) Welcome to the Physics Engine! (III)

    Bouncing multiple coloured balls around the screen is much more fun.

  • Lesson 26: (3.2) Welcome to the Physics Engine! (IV)

    Adding Segments as Shapes and using these as walls.

  • Lesson 27: (3.2) Welcome to the Physics Engine! (V)

    Polygons as Physics Objects.

  • Lesson 28: (3.4) Welcome to the iPad!

    Scripting for Touch-Enabled Devices.

  • Supplement: Working with Scripts on the iPad

  • Lesson 29: Lua Objects Gallery Tutorial

    Learn how to use the Lua Objects Gallery in creating your own scripts



    Creating BLE-enabled scripts for the iPad

  • Lesson 30: Welcome to BLE

  • Lesson 31: BLE - Create your own TI-Nspire Remote

  • Lesson 32: BLE - Measuring Temperature with the Vernier Go Wireless Temp (UPDATED to include Vernier Go-Link support)

  • Lesson 33: BLE - Measuring Heart Rate

  • Lesson 34: BLE - Measuring Temperature with the TI Sensor Tag

  • Lesson 35: BLE - Build Your Own Weather Station with the TI Sensor Tag

  • Lesson 36: BLE - Exploring Movement and Position with the TI Sensor Tag

  • Lua Lesson 37: Lua, LaunchPads and BLE: Making Music via BLE

  • Lua Lesson 38: Lua, LaunchPads and BLE: Real world data at your fingertips: Light, Ultrasonic Motion and more...

  • Lua Lesson 39: Lua, LaunchPads and BLE: Build your own BLE Robot for under $USD40



    Creating Scripts for the TI-Innovator Hub

  • Lua Scripting Lesson 40: TI Innovator™ Hub Lesson 0: Using Lua to store and edit TI-BASIC programs for the Innovator™ Hub (Lua Scripting Lesson 40)

  • Lua Scripting Lesson 41: TI Innovator™ Hub Lesson 1: SENDING to the Hub: Controlling the Action (Lua Scripting Lesson 41)

  • Lua Scripting Lesson 42: TI Innovator™ Hub Lesson 2: READING from the Hub: Real world interaction and data (Lua Scripting Lesson 42)

  • Lua Scripting Lesson 43: TI Innovator™ Hub Lesson 3: Exploring the OneShotTimer: Learning to Wait! (Lua Scripting Lesson 43)

  • Lua Scripting Lesson 44: TI Innovator™ Hub Lesson 4: Making Music with the Innovator™ Hub (Lua Scripting Lesson 44)

  • Lua Scripting Lesson 45: TI Innovator™ Hub Lesson 5: Lua Script for the TI Innovator™ Rover (Lua Scripting Lesson 45)

  • Lua Scripting Lesson 46: TI Innovator™ Hub Lesson 6: Lua Script for the Norland Research/TI Innovator™ Hub Robot (Lua Scripting Lesson 46)

  • Lua Scripting Lesson 47: TI Innovator™ Hub Lesson 7: Build your own Innovator™ Hub Robot (Lua Scripting Lesson 47)

  • Lua Scripting Lesson 48: TI Innovator™ Hub Lesson 8: Create a general Innovator™ Hub Document (Lua Scripting Lesson 48)

  • Lua Scripting Lesson 49: TI Innovator™ Hub Lesson 9: Create a general Innovator™ Hub and BLE Document (Lua Scripting Lesson 49)


    ©2017 Compass Learning TechnologiesHome TI-Nspire Authoring TI-Nspire STEM HQ Lua Scripting HQ Lua Scripting Tutorials