Skip to main content
Search scope
corbett banner

Imagine telling a story in an Indigenous language and having a computer interpret and produce digital images for the story. Simon Fraser University (SFU) scholar Jon Corbett aims to make this happen by developing computer coding using nehiyawewin, the Plains Cree language.

Corbett is a nehiyaw-Métis computational media artist, computer programmer and professor at SFU’s School of Interactive Art and Technology (SIAT). His research and teaching focuses on Indigenous forms of expression through Indigitalization—exploring how Indigenous cultural knowledge can be braided into the framework of computing science and computer programming. Corbett’s work encompasses ethnocomputing; digital encoding and archiving of Indigenous knowledge; Indigenous language revitalization; and human-computer cultural interfacing.

To develop a computer programming language for Indigenous languages—and currently in Cree—Corbett uses its natural language and cultural perspectives directly in the computer interface. For example, he can program the computer to perform smudging, the act of burning herbs to purify and protect. Programmatically, this digital smudging clears the physical and cached memories, initializes peripherals and clears the screen. It essentially prepares the system to execute a program in an environment free of latent data that could negatively impact it.

ancestral code

Professor Corbett’s acimow/Cree# computer coding language uses nehiyaw syllabics. This example performs the programming act of smudging.

“The programming language I created using nehiyawewin is designed to be culturally significant and aimed at decolonizing and Indigenizing computer programming languages,” Corbett explains. “My goal is to provide a digital art platform that can be written in any Indigenous language’s orthography.” His article, Cree Coding, was recently published in the latest issue of Root and STEM Language and Literacy: Digital Dialogues.

We spoke with professor Corbett about his work.

Why is it important to develop a computer language in Cree and other Indigenous languages?

Computer programming languages like Javascript, Python and HTML prioritize the interests of Western cultures while disregarding the perspectives and experiences of Indigenous peoples. Being able to program using an ancestral language is vital to the survival of such languages. But beyond that, it also provides a platform for archiving histories and allows Indigenous communities to share their cultural knowledges through digital visual expressions while protecting stories and language in encoded or compiled source code. My vision is that having this ability to code in an ancestral language will encourage a new generation of language learners and speakers to use programming as a way to slow the erosion of Indigenous cultures proliferated by Western technologies.

Tell us about the differences between coding in Cree and in HTML, Javascript or Python.

The most noticeable differences between programming in acimow/Cree# and other languages like Javascript and Python are in formatting and the programmatic commands. Acimow/Cree# relies heavily on the Cree syllabary, which does not include non-syllabic symbols such as punctuation or numbers. As a coder, you must also understand the relationships and cultural metaphors of programmatic operations.

One example of culturally specific programming is the ability to program the computer to perform smudging. What are some of the other culturally specific ways to program?

Because the Cree language remains a primarily spoken language, coding needs to reflect and respect this aspect. Therefore, most of the programming operations are tied to cultural metaphor, and you need to reformulate the code as story, so that if it were spoken, it would resemble a story. For example, read the following code and speak it allowed:

for (x=1;x<5;x++){



Spoken, this code would read something like: “for open bracket x equals one semicolon x is less than five semicolon x plus plus close bracket open brace blanket plus plus semicolon close bracket”

Now that same code written in Cree#:

ᓂᔮᓇᐣ ᐱᐳᓇ ᑕᑯᓇᒼ ᐯᔭᐠ ᐊᑯᐦᑊ ᐊᓯᐘᒋᑫ ᒌᒫᐣ

Would be (translated to English from Cree#):

“for five winters add one blanket to the inside of the canoe”

In this example, a canoe is just a container holding “blankets.” For each iteration of the loop, a blanket is added to the number of blankets in the canoe.

You are working on an Indigenous Digital Media Toolkit. Can you tell us what tools and information will be in the toolkit?

The Indigenous Digital Media Toolkit (IDMT) was intended to be a framework that I hope can be used as a model for other Indigenous languages and cultural knowledges. The IDMT is a specific project built from my development of an Indigenous Computing Theory/Philosophy, and for now it is focused on nehiyaw/Cree language and knowledge. The Cree package of the IDMT toolkit would/will include a Windows-based version of the acimow/Cree# programming language using Cree syllabics with an associated programming environment; a desktop application that has a converter for Cree syllabics to various forms of Standard Roman Orthography and phonetic IPA pronunciation; a syllabic lookup; and a built-in dictionary. It also includes AC Mono, a mono-spaced Canadian Syllabics font I designed, and my Cree keyboard.

For more: See Jon Corbett’s talk Indigitization: Indigenous Computer Theory.


SFU scholars can reach out to their faculty communications and marketing team for support sharing their work as a news story or on social channels. They can become SFU media expertspitch an article to The Conversation Canada, or nominate their work for a Scholarly Impact of the Week profile.