https://github.com/creatorsim/creator
CREATOR is a generic teaching simulator to program in assembly in which you can simulate the operation of different architectures on the same tool. This simulator is designed to be used as a tool in which students can put into practice the brews seen in the theoretical classes of the subjects of Architecture and Computer Structure.
https://github.com/creatorsim/creator
assembly esp32 mips32 risc-v simulator teaching-tool z80
Last synced: about 2 months ago
JSON representation
CREATOR is a generic teaching simulator to program in assembly in which you can simulate the operation of different architectures on the same tool. This simulator is designed to be used as a tool in which students can put into practice the brews seen in the theoretical classes of the subjects of Architecture and Computer Structure.
- Host: GitHub
- URL: https://github.com/creatorsim/creator
- Owner: creatorsim
- License: lgpl-3.0
- Created: 2018-10-08T10:28:32.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2026-04-21T11:12:07.000Z (2 months ago)
- Last Synced: 2026-04-21T13:16:50.472Z (about 2 months ago)
- Topics: assembly, esp32, mips32, risc-v, simulator, teaching-tool, z80
- Language: JavaScript
- Homepage: https://creatorsim.github.io/creator/
- Size: 105 MB
- Stars: 25
- Watchers: 2
- Forks: 28
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
CREATOR Project





[](https://app.codacy.com/gh/creatorsim/creator/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)



| | URL |
|:-------------------------------------------:|:----------------------------------------------:|
| :computer: CREATOR | https://creatorsim.github.io/creator |
| :globe_with_meridians: Project Website | https://creatorsim.github.io |
| :book: Documentation | https://creatorsim.github.io/creator-wiki |
| :package: Docker Hub | https://hub.docker.com/repositories/creatorsim |
| :chart_with_upwards_trend: Usage Statistics | https://lookerstudio.google.com/s/pQXDJar8aoM |
| :email: Email | creator.arcos.inf.uc3m.es@gmail.com |
Source Code






| | URL |
|:----------------------------:|:-----------------------------------------------:|
| :clipboard:Source Code | https://github.com/creatorsim/creator |
| :hammer: Assembler | https://github.com/creatorsim/creator-assembler |
| :microscope: Nightly Build | https://github.com/creatorsim/creator-beta |
Supported Internet Browsers





Content
1. [Hardware Integration](#hardware-integration)
2. [Examples](#examples)
3. [Publications](#publications)
4. [Authors](#authors)
5. [ChangeLog](#changelog)
6. [Developing](#developing-creator)
7. [Community](#community)
8. [Sponsors](#sponsors)
Hardware Integration
Local Device
| | Repository | Documentation | Docker |
|:----------------------------:|:-------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------:|
| Espressif ESP32 Gateway | [ESP32 Gateway Repository](https://github.com/creatorsim/creator-gateway-esp32) | [ESP32 Gateway Documentation](https://creatorsim.github.io/creator-wiki/web/gateway.html#executing-the-esp32-gateway) | [ESP32 Gateway Docker](https://hub.docker.com/repository/docker/creatorsim/creator-gateway-esp32)
|
| SBC Boards Gateway | [SBC Gateway Repository](https://github.com/creatorsim/creator-gateway-sbc) | [SBC Gateway Documentation](https://creatorsim.github.io/creator-wiki/web/gateway.html#executing-the-sbc-gateway) | |
Remote Device
| | Repository | Documentation | Docker |
|:----------------:|:--------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------:|
| Remote Labortory | [Remote Laboratory Repository](https://github.com/creatorsim/creator-remote-lab) | [Remote Laboratory Documentation](https://creatorsim.github.io/creator-wiki/web/remote-lab.html) | [Remote Laboratory Docker](https://hub.docker.com/repository/docker/creatorsim/creator-remote-lab)
|
Examples
| | RISC-V (RV32IMFD) | RISC-V (RV64IMFD) | MIPS-32
|:--------------------------:|:-----------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------:|
| ALU operations | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e2) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e2) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e2) |
| Store/Load Data in Memory | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e3) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e3) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e3) |
| FPU operations | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e4) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e4) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e4) |
| Loop | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e5) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e5) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e5) |
| Branch | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e6) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e6) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e6) |
| Loop + Memory | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e7) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e7) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e7) |
| Copy of matrices | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e8) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e8) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e8) |
| I/O Syscalls | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e9) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e9) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e9) |
| I/O Syscalls + Strings | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e10) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e10) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e10) |
| Subrutines | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e11) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e11) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e11) |
| Factorial | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV32IMFD)&example_set=default&example=e12) | [Open Example](https://creatorsim.github.io/creator/?architecture=RISC-V%20(RV64IMFD)&example_set=default&example=e12) | [Open Example](https://creatorsim.github.io/creator/?architecture=MIPS-32&example_set=default&example=e12) |
Publications
### 2025
:newspaper: Simulador web para RISC-V basado en la especificación SAIL
* Conference paper: Jornadas Sarteco
* Authors: Juan Carlos Cano-Resa, Félix García-Carballeira, Diego Camarmas-Alonso, Alejandro Calderón-Mateos
* [:link: Open publication](http://dx.doi.org/10.5281/zenodo.15773218)
```bibtex
@inproceedings{cano_resa_2025_15773218,
author = {Cano-Resa, Juan Carlos and Garcia-Carballeira, Felix and Camarmas-Alonso, Diego and Calderon-Mateos, Alejandro},
title = {Simulador web para RISC-V basado en la especificación SAIL},
booktitle = {Avances en Arquitectura y Tecnología de Computadores. Actas de las Jornadas SARTECO},
year = 2025,
pages = {367-376},
publisher = {Zenodo},
month = jun,
venue = {Sevilla, Spain},
doi = {10.5281/zenodo.15773218},
url = {https://doi.org/10.5281/zenodo.15773218}
}
```
:newspaper: Extensión del simulador CREATOR para integrar funcionalidades de Arduino: caso de estudio con el microcontrolador ESP32
* Conference paper: Jornadas Sarteco
* Authors: Elisa Utrilla-Arroyo, Diego Camarmas-Alonso, Félix García-Carballeira, Alejandro Calderón-Mateos
* [:link: Open publication](http://dx.doi.org/10.5281/zenodo.15773284)
```bibtex
@inproceedings{utrilla_arroyo_2025_15773284,
author = {Utrilla-Arroyo, Elisa and Camarmas-Alonso, Diego and Garcia-Carballeira, Felix and Calderon-Mateos, Alejandro},
title = {Extensión del simulador CREATOR para integrar funcionalidades de Arduino: caso de estudio con el microcontrolador ESP32},
booktitle = {Avances en Arquitectura y Tecnología de Computadores. Actas de las Jornadas SARTECO},
year = 2025,
pages = {637-643},
publisher = {Zenodo},
month = jun,
venue = {Sevilla, Spain},
doi = {10.5281/zenodo.15773284},
url = {https://doi.org/10.5281/zenodo.15773284}
}
```
:newspaper: CREATOR: un entorno de desarrollo integrado para la docencia y la investigación en procesadores RISC-V
* Seminar: CAPAP-H
* Authors: Diego Camarmas-Alonso
* [:link: Open publication](https://creatorsim.github.io/content/publications/creator_capap_h_2025.pdf)
### 2024
:newspaper: CREATOR: An Educational Integrated Development Environment for RISC-V Programming
* Journal paper: IEEE Access
* Authors: Diego Camarmas-Alonso, Félix García-Carballeira, Alejandro Calderón-Mateos, Elías Del-Pozo-Puñal
* [:link: Open publication](https://doi.org/10.1109/ACCESS.2024.3406935)
```bibtex
@article{10540579,
author = {Camarmas-Alonso, Diego and Garcia-Carballeira, Felix and Calderon-Mateos, Alejandro and Del-Pozo-Puñal, Elias},
journal = {IEEE Access},
title = {CREATOR: An Educational Integrated Development Environment for RISC-V Programming},
year = {2024},
volume = {},
number = {},
pages = {1-1},
doi = {10.1109/ACCESS.2024.3406935}
}
```
:newspaper: Servicio de laboratorio remoto para la integración del simulador CREATOR con hardware RISC-V
* Conference paper: Jornadas Sarteco
* Authors: Diego Camarmas-Alonso, Félix García-Carballeira, Alejandro Calderón-Mateos, Elías Del-Pozo-Puñal
* [:link: Open publication](https://doi.org/10.5281/zenodo.11632954)
```bibtex
@inproceedings{camarmas_alonso_2024_11632955,
author = {Camarmas-Alonso, Diego and Garcia-Carballeira, Felix and Calderon-Mateos, Alejandro and Del-Pozo-Puñal, Elías},
title = {{Servicio de laboratorio remoto para la integración del simulador CREATOR con hardware RISC-V}},
booktitle = {{Avances en Arquitectura y Tecnología de Computadores. Actas de las Jornadas SARTECO}},
year = 2024,
pages = {65-371},
publisher = {Zenodo},
month = jun,
venue = {A Coruña, Spain},
doi = {10.5281/zenodo.11632955},
url = {https://doi.org/10.5281/zenodo.11632955}
}
```
### 2023
:newspaper: CREATOR: a tool for teaching assembly programming with RISC-V
* Conference poster: RISC-V Summit Europe
* Authors: Félix García-Carballeira, Alejandro Calderón-Mateos, Diego Camarmas-Alonso, Elías Del-Pozo-Puñal
* [:link: Open publication](http://dx.doi.org/10.13140/RG.2.2.11287.34721)
:newspaper: Integración del simulador CREATOR con hardware RISC-V: caso de estudio con microcontrolador ESP32
* Conference paper: Jornadas Sarteco
* Authors: Diego Camarmas-Alonso, Félix García-Carballeira, Alejandro Calderón-Mateos, Elías Del-Pozo-Puñal
* [:link: Open publication](https://doi.org/10.5281/zenodo.8378899)
```bibtex
@proceedings{diego_camarmas_alonso_2023_8378899,
title = {{Integración del simulador CREATOR con hardware RISC-V: caso de estudio con microcontrolador ESP32}},
year = 2023,
publisher = {Zenodo},
month = sep,
doi = {10.5281/zenodo.8378899},
url = {https://doi.org/10.5281/zenodo.8378899}
}
```
:newspaper: CREATOR como herramienta docente para la enseñanza de la programación en ensamblador con RISC V
* Seminar: CAPAP-H
* Authors: Félix García-Carballeira
* [:link: Open publication](https://creatorsim.github.io/content/publications/creator_capap_h_2023.pdf)
### 2021
:newspaper: A new generic simulator for the teaching of assembly programming
* Conference paper: CLEI
* Authors: Diego Camarmas-Alonso, Félix García-Carballeira, Alejandro Calderón-Mateos, Elías Del-Pozo-Puñal
* [:link: Open publication](http://doi.org/10.1109/CLEI53233.2021.9640144)
```bibtex
@inproceedings{9640144,
author = {Camarmas-Alonso, Diego and García-Carballeira, Félix and Del-Pozo-Puñal, Elías and Mateos, Alejandro Calderón},
booktitle = {2021 XLVII Latin American Computing Conference (CLEI)},
title = {A new generic simulator for the teaching of assembly programming},
year = {2021},
volume = {},
number = {},
pages = {1-9},
doi = {10.1109/CLEI53233.2021.9640144}
}
```
:newspaper: CREATOR: Simulador didáctico y genérico para la programación en ensamblador
* Conference paper: Jornadas Sarteco
* Authors: Diego Camarmas-Alonso, Félix García-Carballeira, Alejandro Calderón-Mateos, Elías Del-Pozo-Puñal
* [:link: Open publication](http://doi.org/10.5281/zenodo.5130302)
```bibtex
@proceedings{diego_camarmas_alonso_2021_5130302,
title = {{CREATOR: Simulador didáctico y genérico para la programación en ensamblador}},
year = 2021,
publisher = {Zenodo},
month = jul,
doi = {10.5281/zenodo.5130302},
url = {https://doi.org/10.5281/zenodo.5130302}
}
```
Authors
* :technologist: [Diego Camarmas Alonso](https://github.com/dcamarmas)
* :technologist: [Félix García Carballeira](https://github.com/fgcarbal)
* :technologist: [Alejandro Calderón Mateos](https://github.com/acaldero)
### Contributors
* :technologist: [Elías Del Pozo Puñal](https://github.com/edelpozop) (Beta tester)
* :technologist: [Lucas Elvira Martín](https://github.com/luelvira) (RISC-V and several improvements)
* :technologist: [José Antonio Verde Jiménez](https://github.com/joseaverde) (Real hardware integration)
* :technologist: [Álvaro Guerrero Espinosa](https://github.com/ALVAROPING1) (New compiler)
* :technologist: [Elisa Utrilla Arroyo](https://github.com/EUtrilla2002) (Real hardware integration)
* :technologist: [Luis Daniel Casais Mezquida](https://github.com/rajayonin) (Website migration, interrupts, timers, and memory-mapped devices)
* :technologist: [Jorge Ramos Santana](https://github.com/mjorgers) (core/tests rewrite, new web UI, new CLI, RV64 & Z80 architectures)
* :technologist: [Juan Carlos Cano Resa](https://github.com/Jotaceee) (SAIL integration)
ChangeLog
:atom: 6.0.x
- [x] **BREAKING CHANGES**:
* New YAML architecture format (w/ [JSON schema](docs/schema/architecture.json))
* New library format (Existing libraries must be recompiled)
- [x] New functionality:
* Interrupts and timers
* Memory-mapped devices
* Validate program execution through the CLI (`--validator`)
- [x] New architectures:
* RISC-V 64
* RISC-V 32 (w/ interrupts)
* Z80
- [x] User Interface:
* Revamped web user interface
* Revamped memory viewer
* Vastly improved mobile support
* New [Monaco](https://microsoft.github.io/monaco-editor)-based editor
* Libraries now have metadata to display help
* Vim mode in web editor
* Revamped CLI version
- [x] Modular design:
* Migrate project to [Vite](https://vite.dev/) and [ES Modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules), which vastly improves the developer experience
* Update to Vue 3, Bootstrap 5 & Codemirror 6, among others, & remove jQuery
* Rewrote website and many other core parts in TypeScript
* Revamped unittests
- [x] Other fixes:
* Fix errors in instruction implementation
- Source Code: https://github.com/creatorsim/creator-v6.0
- Try Version: https://creatorsim.github.io/creator-v6.0
:atom: 5.0.x
- [x] New functionality:
* New assembler based on Rust
* New architecture editor based on CodeMirror
- [x] User Interface:
* Several improvements and minor bugs fixed
- Source Code: https://github.com/creatorsim/creator-v5.0
- Try Version: https://creatorsim.github.io/creator-v5.0
:atom: 4.1.x
- [x] New functionality:
* CREATOR Remote Lab
* Dockers for CREATOR
- [x] User Interface:
* Several improvements and minor bugs fixed
- Source Code: https://github.com/creatorsim/creator-v4.1
- Try Version: https://creatorsim.github.io/creator-v4.1
:atom: 4.0.x
- [x] New functionality:
* Integration with real hardware based on RISC-V (ESP32)
* Possibility to choose the default working architecture
- [x] User Interface:
* Improved register file visualization
* Performance improvements (e.g. program execution, data segment loading, etc.)
* Updating external dependencies (fontawesome v6.2.1, jquery v3.6.3, lodash v4.17.15, and Apexchart)
* Several minor bugs fixed
- Source Code: https://github.com/creatorsim/creator-v4.0
- Try Version: https://creatorsim.github.io/creator-v4.0
:atom: 3.2.x
- [x] User Interface:
* New link to the quick reference guide for instructions in PDF
* The current assembly code can be shared as a simple link
- [x] Modular design:
* Simplified pseudo-instruction forms
* Improved memory detail panel
* Hardware counter updated to know the number of clock cycles consumed since the last reset
- Source Code: https://github.com/creatorsim/creator-v3.2
- Try Version: https://creatorsim.github.io/creator-v3.2
:atom: 3.1.x
- [x] User Interface:
* Example set added
* The Instruction help width can now be configured from the configuration modal
* Clarification on the initial CREATOR page
* Better responsive behavior on different screen sizes
* Power consumption added
- [x] Modular design:
* Interface based on Vue components for all UI elements in CREATOR
* Simulated main memory reworked
* Architecture improved
- Source Code: https://github.com/creatorsim/creator-v3.1
- Try Version: https://creatorsim.github.io/creator-v3.1
:atom: 3.0.x
- [x] Several minor RISC-V improvements
- [x] More modular design:
* Initial user interface based on Vue components
* Improved modular design on the execution engine
- [x] Improved instruction definitions:
* New CREATOR API for instruction definitions
* Support for helping on checking Stack Calling Conventions
* Checking saved registers on the stack are restored
* Colored stack
* SP and FP pointers are shown on the memory stack detail panel
- Source Code: https://github.com/creatorsim/creator-v3.0
- Try Version: https://creatorsim.github.io/creator-v3.0
:atom: 2.1.x
- [x] **RISC-V** supported (Thanks to Lucas Elvira Martín @luck5941)
- [x] CREATOR **accessibility improved** up to WCAG 2.0 (Level AAA)
- [X] **Command line version** of CREATOR:
* Help:
* ./creator.sh -h
* Example: creator compiles and executes the example2.txt, showing the final state:
* ./creator.sh -a architecture/MIPS-32.json -s examples/MIPS/example2.txt
* Example: save final state into 'output.txt' file:
* ./creator.sh -a ./architecture/MIPS-32.json -s ./examples/MIPS/example2.txt -o min > output.txt
* Example: compare the final state and the state saved on 'output.txt' file:
* ./creator.sh -a ./architecture/MIPS-32.json -s ./examples/MIPS/example2.txt -o min -r output.txt
- [x] Creator now accepts three GET values:
* Preload the MIPS architecture:
* https://creatorsim.github.io/creator/?architecture=MIPS-32
* Preload example 'e3' from example set 'uc3m-ec':
* https://creatorsim.github.io/creator/?example_set=uc3m-ec&example=e3
- [x] Bootstrap-vue upgraded up to v2.15.0
- Source Code: https://github.com/creatorsim/creator-v2.1
- Try Version: https://creatorsim.github.io/creator-v2.1
:atom: 1.3.x
- [x] First CREATOR release
- Source Code: https://github.com/creatorsim/creator-v1.3
- Try Version: https://creatorsim.github.io/creator-v1.3
Developing CREATOR
See [`docs/dev.md`](https://github.com/creatorsim/creator/blob/master/docs/dev.md).
Community
Sponsors
Integrated development environment for teaching and research on RISC-V processors (PDC2023-145832-I00) funded by MICIU/AEI/ 10.13039/501100011033 and by the European Union NextGenerationEU/PRTR. https://creatorsim.github.io/EDIRISC
