A Goblin's Tale
An action game built in Godot: a goblin journeys through forests, ruins, and forbidden frontiers to discover what happened to his village, facing hordes of knights.
IF687 · Undergraduate, CIn/UFPE · 2015.1 – 2025.2
A project-based course. Students survey inspiring systems and tools, form groups, define a multimedia product, and build it through two submissions — technical and final — with peer assessment.

01 · Teaching
Introdução à Multimídia (Introduction to Multimedia, IF687) is an undergraduate course at CIn/UFPE, 45 hours long, open to Computer Science, Computer Engineering, and Information Systems, taught by Giordano Cabral from 2015.1 to 2025.2, except in 2023.2 and 2024.1. The course has no lectures: students present examples of multimedia systems of their interest, the examples are grouped into areas of interest, the class splits by topic, and each group teaches a seminar for the others. In 2026 the course left Giordano Cabral's teaching load and, under the new curriculum, was replaced by Tendências em Mídia e Interação (Trends in Media and Interaction, CIN0055), with the same structure.
02 · Teaching
The course ran in twenty-one academic semesters: nineteen on Google Classroom between 2015.1 and 2025.2, plus 2018.1 and 2023.1, whose materials are only on Drive. In 2020.1, classes were interrupted in March by the pandemic and resumed in 2021; in 2020.3, two classes ran in parallel, one for Computer Science (IF687) and one for Computer Engineering (IF849), the latter with Filipe Calegário. The last two editions had 46 and 48 students.
03 · Teaching
Students bring sources of inspiration; survey the development tools in their field; form groups by topic, and each group gives a seminar to the others — covering one simple tool, one advanced tool, and one different tool — and assigns a guided activity that everyone completes the following week. Next come ideation, the project plan, an interim submission at which the scope can be renegotiated, the technical presentation (code, architecture, difficulties, division of work), and the final demonstration; the project grade is distributed within the team through 360-degree assessment. Recent classes have included test drives with the class and a prototype built using vibe coding. The sources yielded around 125 team projects and 85 actual images.
04 · Teaching

An action game built in Godot: a goblin journeys through forests, ruins, and forbidden frontiers to discover what happened to his village, facing hordes of knights.

An application in which users record their day in audio — accounts, meetings, moments — and AI automatically generates a summary in the form of insights.

Breno Silva, Murilo Barbosa, Tiago Menezes, Victoria Luquet
A grid-based music sequencer with 64 steps across four bars, in which multiple users compose simultaneously in the same room, switching between piano, synthesizer, and guitar; synchronized via WebSockets.
An AI fashion consultant: analyzes a photo of an outfit, accepts questions via audio or text, and returns critiques and suggestions from multiple models, with an audio response.

Allan Soares Vasconcelos, Álvaro Gabriel C. Lima, Peterson Jesus Feitosa de Melo, Vinicius Sales Oliveira
A game inspired by Flappy Bird, controlled entirely by voice: sound frequency makes the bird rise or fall, and volume speeds up its flight; built in JavaScript and Python with librosa.

Artur Luis Vieira de Melo Boa Viagem, Caio Vinicius de Meneses Fernandes Coelho, Hugo de Almeida Medeiros, Otavio Henrique Baudel Francisco, Paulo Rogerio Oliveira Filho, Pedro Basilio Gomes de Sa
A domino game for friends built in the Godot engine, with three modes: classic, drawing from the boneyard, and a third custom mode.

Allyson Ryan Emiliano da Silva, Esdras Henrique Albino da Silva, Gabriel Marques de Albuquerque, Lucas Gabriel da Rocha Nascimento, Lucas Gabriel de Oliveira Silva, Matheus Borges Figueiroa, Miguel Gomes de Oliveira, Rafaela Araujo de Azevedo Pitanga
A gesture-controlled memory and motor coordination game: the webcam acts as a sensor (OpenCV and MediaPipe), and the player memorizes a sequence of colors and reproduces it by touching circles on the screen with the indicated hand, against the clock.
Filipe Moreira, Pedro Henrique Dantas, Pedro Bezerra, João Teles, Jônatas Ferreira, Gabriel Albertin, Vinicius Rodrigues, Carlos Henrique Gonçalves
A web application for interactive question, answer, and voting sessions, designed for icebreaker activities and simple quizzes, with a FastAPI server and a React interface.

Lucas da Silva Carvalho, Marcus Vinicius Silva Lima, Matheus Álefe Bezerra da Silva, Pedro Vasconcelos de Menezes Case, Ryei Estevan da Silva Moraes, Samuell Henrique Carvalho Paes Costa, Walfrido Saturno do Nascimento, Tulio Oliveira de Araujo
A 2D RPG with procedural map generation: each playthrough changes the paths, resources, and creature behavior in a labyrinth spanning different biomes, with exploration, real-time combat, and character progression.

Vitor Gabriel Gomes Dias
A tool that uses AI to adapt song lyrics into another language without literal translation: it analyzes the original song's melody, rhythm, and emotional weight and recreates the lyrics to preserve the same feeling.

Angel Willyan R. de Lima, Dayvid Willams da S. Alexandrino, Fabrício Aranha Ferreira, Gabriel Lopes de Souza, Kauã Richard da Silva, Maria Clara Acruchi, Marina Arruda
A web application that transforms feelings and abstract ideas into visual travel inspiration: based on the user's description, it suggests destinations and generates personalized artistic images with AI.

Arthur Bezerra Calado, Danilo José Coutinho de Oliveira, Fabriely Luana Pinheiro dos Santos, Flávio Roberto Tavares Bezerra, Pedro Campelo Lins, Yuumi Kunii
A platform for tabletop RPG players and game masters (Dungeons & Dragons) that brings together a character sheet, rulebooks, a notebook, and dice rolling in one place, with a chatbot that answers questions about the game world and generates images of monsters and settings.

Ellian, Italo, João Pedro, Aline Marianna, Lucas Vidal, Maria Eduarda
A computer vision system that recognizes hand gestures through the camera and maps them to Spotify playback commands — volume, track changes, play, and pause — with support for registering custom gestures.

Online version of the card game Coup: each player starts with two cards and two coins and takes actions to be the last survivor; real-time multiplayer matches with Socket.io and integrated chat.

2D puzzle platformer in which the player switches between dimensions to solve challenges; written in C++ with SDL 3, with an integrated level editor, grid-based physics, and controller and keyboard support.

Game combining a memory game with a race against time: the player reveals colored squares on a board, avoids bomb squares and, when the target color is announced, must remember the path to it with everything hidden again.

Vinicius Cardoso Novaes
Command-line music visualizer that uses pygame to draw shapes following the spectrogram of each segment of the track being played, calculated using a Fourier transform with pydub.

Vinicius Seabra, Guilherme Siqueira, Ivo Neto, Gustavo Santiago, Rodrigo Sales
Interactive visualizer that transforms music (from an MP3 file or microphone) into three-dimensional cubes that react to sound in real time, with adjustable cube count, size, and color; built with p5.js and p5.sound.

2D platformer built in Unity that spans different historical periods through levels with obstacles and enemies.
Dance game inspired by Just Dance with brega funk choreography: a pose detector extracts 33 body landmarks from dance videos, a character in Unity reproduces the choreography, and the webcam compares the player's pose in real time to award points.

Igor Rafael, João Victor, Jorge Francisco, Raquel Rocha, Tales Vinicius, Tiago Victor
Chess in which the lighting and background music change according to the state of the match — imminent danger or calm — so that players feel the tension of the game.
Service that uses the Spotify API to generate a playlist matching the feeling the user chooses — what they feel or what they want to feel.
Pomodoro timer guided by eye tracking: computer vision tracks blinking and provides feedback based on the duration of the session.

Flutter app that generates an image from the user's description and turns it into a puzzle: the pieces rotate until the image is complete.

Filipe Eduardo Ferreira da Silva, Gabriel Monteiro Silva, Lucas Dantas de Moura Carvalho, Lucas Lins de Lemos, Luiza Diniz Mendes Monteiro Luna, Maria Clara Alencastro Braner Kenderessy
From image to music: the user uploads a photo and the system searches Spotify for related tracks using literal, emotional, or combined searches.

Guessing game: each player generates an image with three keywords, and their opponent tries to guess them within one minute.
Lucas Gabriel Rodrigues de Melo
Prompt and image game across three repositories (frontend, API, and prompt and image generator).
João Victor de Barros Felix, Mikael Vidal da Silva
Geolocation-based treasure hunt: clue points and interactive artifacts marked by latitude and longitude, with images generated to match the location's theme (parks, zoos).
Snake game in which desktop shortcuts serve as obstacles: before playing, the player arranges the icons to create their own map.
Musical Stop (adedonha): create a room, invite friends, and find out who knows the most songs.
Jonathan Kilner dos Santos Silva
Game in which the player helps a character reach a bus stop on a rainy day in Recife, amid flying cockroaches and other creatures.
Platformer built in Unity: a diver descends through the depths of a submerged city, walking and jumping to the bottom of the sea.

Automatic video editor synchronized with audio: it takes multiple videos and a music track and assembles a new video with transitions on the beat.
Almir Menezes, Daniel Henrique, Matheus Marques, Murilo Ventura, Pedro Henrique
Visual novel built in Ren'Py about the story of Kaguya Hime, in which the player identifies the hiragana for objects in the scene to earn credits and unlock chapters.
Recreation of the board game War as a digital board, with custom rules to make matches more dynamic.
Web app that takes a song from YouTube and returns a complete karaoke video: it separates the vocals from the instrumental backing (Spleeter), synchronizes the lyrics, and generates animations that react to the music.

Igor Domingos da Rocha e Silva, José Henrique Fernandes Silva, Matheus Correia da Rocha, Matheus Epitacio Barros de Lucena
Game combining air hockey with cars, with physics simulation of vehicle movement and two modes: standard and with obstacles.

Gustavo Chaves Galdino de Moraes, Gabriel Albuquerque de Souza Meireles, Heitor da Rocha Coimbra, Nilo Bemfica Mineiro Campos Drumond
Multiplayer browser game in which players type words to attack and defend against opponents in the same room, with no registration required; the last survivor wins.

Alexandra Viana Zarzar, Bruno de Melo Costa, João Pedro Henrique Santos Duarte, Thayná Santos, José Antônio Maciel
Introductory music game for children, with modes for recognizing instruments, styles, notes, and sequences.

Charles Gabriel Carvalho Cristovão, Paulo Henrique Leite Tavares Correia, Pedro Didier Maranhão, Pedro Tenório Lemos
Pokémon sprite generator using generative adversarial networks trained on around 6,000 images, with a browser interface to inspire artists to design new creatures.

Arthur Cassimiro, Issac Ferreira, Michael Felipe, Renato Alpes, Victor Guimarães
Monster generator for tabletop RPGs (Dungeons & Dragons): given a name, type, and challenge rating, it produces a stat block, a description, and an image of the character to save the game master time.
Anthonny, Henrique de Oliveira Braga Sakane, Matheus Amorim
Software built with p5.js that recreates a user-uploaded image using geometric shapes (circles, squares, lines) that appear randomly until they form the image, with size and animation controls.
Adriano Nascimento de Santana, Bruno Mesquita, Jefferson Carlos Lima da Costa, Matheus Barbosa
Natural language processing of tweets posted about candidates for mayor of Recife in 2020.
Andreza Dantas Layme Pifano de Moura, Ismael Rufino Alves Júnior, José Raphael Danillo dos Santos, Wellisson Franklin Cordeiro Pereira
Game by the Jogos Vermelho group.
Unity game with rounds, enemies, and scoring, by the Jogos Amarelo group.
Elaine Cruz, Guilherme Xavier, Leonardo dos Anjos, Matheus Felipe
Virtual reality experience with a car, prototyped in Figma and implemented in Unity.
Matheus Branco de Siqueira, André Luis Peixoto e Vasconcelos Junior, Antônio Barros da Silva Netto, Adrion Cavalcanti de Albuquerque Filho, Lucas Gabriel dos Santos Araújo, Pedro Kempter Brant
Game by Grupo 08.
Game made in Unity.
Mikahel Leal Dias, Pedro Eugenio, Roger Luiz, Vinicius Thiago
Game by the Jogos Azul group.
Ailson Cruz, Avner Anjos, Hugo Santos
Platform that matches music to user-uploaded images so that people with visual impairments can "feel" their surroundings through music.
Alvaro Gabriel, Daniel Victor
Educational math game for children.
Maria Eduarda Senna, Robson Oliveira, Samuel Brasileiro, Samuel Souza
Project by the AR/VR 01 group.
Augusto Terra, Daniel Pacheco, Gabriel Vaz, Ícaro Guerra, Pedro Machado, Alexandre Vieira
Bot by the Tecnologias de IA 2 group.
Aline Gouveia, Bruno Martins, Eduardo Conti
Interactive multimedia web platform.
Anderson César, Eidson Sá, José Bezerra, Maria Clara, Mateus Felipe, Tiago de Barros
Productivity tool that translates podcasts.
Reinforcement learning applied to Tetr.io, a browser-based Tetris game.
Summarizes long audio messages from messaging apps for people who cannot listen to them.
Gabriela Correia Holanda Freitas, Matheus Alves Almeida, Paula Carollina Oliveira dos Santos, Bianca Carneiro da Cunha Nunes Ferreira, Matheus Marinho de Morais Leça, Gabriel Nogueira Leite
Tower defense game by the Jogos Roxo group.
Gabriel Luna, Jéssica Amaral, Lucas Morais, Manoel Neto
Bot that recommends music and images based on the user's emotional state.
André Valença, Daniel de Azevedo Pacheco, Gustavo Gonçalves Borges, João Vitor Marquim, Matheus Oliveira, Thiago Pinheiro Lima
Multiplayer racing game in which the computer keyboard becomes a piano: playing the correct notes in the sequence moves the character forward, while mistakes move the character backward, to the sound of movie and video game themes.

Adaptation of the game Genius for ear training: colors are replaced with notes that the player must identify and memorize, in sequences that grow with each correct response.

Application that detects mood in a photo and recommends songs on the user's Spotify that suit their taste and match the detected emotion.

2D game in Unity with a top-down RPG-style view, featuring a cook-knight who fights enemies with health and defense attributes.
05 · Teaching
From September to December 2025, with the semester organized into topics that reflect the method: inspiration, exploration of tools and an individual project, group ideation with a video presenting the three ideas, a project plan, identification and analysis of critical points, a prototype built through vibe coding, three test drives with the class in November and December, technical submission, final demonstration on December 16, and 360-degree evaluation.





A class of 46 students, with a Gamma page (https://introducao-a-multimidia-m8bc1bq.gamma.site/), a tracking spreadsheet, and a WhatsApp group.
https://pedrocase.github.io/Multimidia-projeto/ (repository github.com/pedrocase/Multimidia-projeto).






A class of 48 students, from November 12, 2024, to April 8, 2025, with an academic break and Carnival in between.




https://rodisales87.github.io/Multimidia-Visualizador-de-Som/ (repository github.com/RodiSales87/Multimidia-Visualizador-de-Som). 


The class did not appear in the Classroom scan, but the Drive folder contains the submissions.
https://github.com/John-Cavalcanti/ChessGame (release v0.9.1). 






From November 2022 to April 2023.
From June to October 2022, with a class Discord server.
https://multimap.netlify.app/ (still responds; repository github.com/jvbfelix/Multimidea).From February to May 2022, online until the end of March and in person afterward.
https://github.com/DanielHCorreia/VisualNovel--Kaguya-Hime.





https://www.youtube.com/watch?v=x_fmCbcdn_I). 


An online class, from September to December 2021, using Meet and Discord.






An online class, from May to September 2021, with the entire schedule published at the outset: inspiration and tools presented in videos and on Notion, seminars by groups of up to ten people assessed through a form, exercises, ideation, specification, a prototype, an interim submission, user feedback, technical submission, demonstration, and final submission on September 2.

https://github.com/Gaudiot/EmotionsAndSpotify. 


There are two classes in Classroom.


https://youtu.be/DHj0WZFYeLAAn online semester from August to December 2020, with two parallel classes: IF687, for Computer Science, and IF849, for Computer Engineering, the latter with Filipe Calegário.
IF687 class (Computer Science):










From August to December 2019, with teaching assistant Luiz Henrique "Tato" Caúla, who ran seminars in the professor's absences and taught the React workshop.
https://github.com/zegabr/ObstacleSwap.https://github.com/rodrigoap2/Mapsify and https://github.com/danbsts/mapsify-server.
From February to July 2019, with teaching assistants, in four phases.
abre.ai/mmbot): Lucas Barros, Lucas Cardoso, Luan Brito, Éden Santana, Rafael Mota, Saulo Guilhermino, Penélope Araújo, Pedro Veríssimo, Gabriel Pessoa, Matheus Lima, André Luna — music creation, audio analysis and speech recognition.
https://dinosaulo.github.io/From August to December 2018, with teaching assistants.
https://github.com/jvcoutinho/Timber-. 

https://heitorado.github.io/EkansEmag/The class does not appear in the Classroom scan; Drive contains the systems used as inspiration, "Challenge 1: choosing the idea", the theoretical and technical difficulties reported by the teams, and the 360-degree evaluation for each group.
https://lams3.github.io/three-js-examples/Music/index.html. 
From August to December 2017.


From March to July 2017.
github.com/va94/DonaCucaRepo not found on September 17, 2026.https://github.com/msb55/projeto-multimidia.https://github.com/rslgp/multimidia.jadsonlucena.orgfree.com/multimidia (Jadson Torres de Lucena), offline.rafaellsma/tictactoelp not found.From August to December 2016, with João Tragtenberg completing a teaching internship.


https://www.youtube.com/watch?v=gjbza6S3tu0From March to July 2016.
From August 2015 to January 2016.






From March to July 2015, with the same sequence as the following editions: ten multimedia applications tested per student, then one alternative application, then the definition of the projects.
Frequently asked questions
A project-based course. Students survey inspiring systems and tools, form groups, define a multimedia product, and build it through two submissions — technical and final — with peer assessment.
19 classes, from 2015.1 to 2025.2.