The Pic Importer was a tool created to import images from PC to Dreams on the Ps4. It works by turning image brightness data into audio and importing it into Dreams as a sound recording. On the Dreams platform, there exists limitations on the tools for what you can create, including no way to put images onto the platform... Until this tool. Once released, creators began importing pictures into their own games, something which was finally made possible. I even did this for my games Deadzone: Aberration and Miscreation.
The Pic Importer won an Impy award for the "Innovation in Create" category, presented by Media Molecule during the last Impy Awards in 2023. From the award ceremony, the community described it with: "This creation really shows how anything is possible in Dreams, which is why I love creating on such an innovative platform." and "Literally broke boundaries."
Originally, I was working on a documentary for the golden records and the voyager spacecrafts when I found out how images were encoded into record discs. It works using AM (Amplitude Modulation) audio signals, creating an image by scanning left to right, where high volumes made high brightnesses. Many images were black and white, while coloured images were broken into the 3 channels for red, green and blue. This is where the idea came from to build a similar system into Dreams, using the audio importing website.
Converting images into audio was done using a python script, using the PIL and wave python libraries. Firstly, the inputted picture is pixelated into the desired resolution, breaks it into its separate colour channels, and creates a 90hz sine sound for each channel. Every 30th of a second, the amplitude is set between 0 and 1 based on pixel brightness intensity. Lastly, the audio is then split up into 30 second clips because of the audio import limits set on the website.
These were the first imported images into the game, which used brightness of 3 separate paint strokes for RGB to create an image the same way a screen would. This version was impractical for games because it couldn't be baked, needing to be slowly re-rendered every time it was booted, severely limiting resolution too.
Over time, these issues were fixed by combining these colours together and removing the brightness effect and baking these pixels into a permanent picture was made possible after a Dreams platform update.
After the importer had been tested and used by others, there were a few attempts at improving it further to make it fast to render and contain less audio to send. A build was made, implementing F.M (Frequency Modulation) to compress even more data into audio through different frequency bands to make it even more efficient. It was theoretically possible to create 16 separate audio recordings play simultaneously, which could be detected using a new Dreams update for fast Fourier transforms (FFT).
Unfortunately, the harsh reality is that the Dreams FFT leaked even perfect sine signals onto nearly every frequency band. Even worse, the signal outputted depended on the internal game clock offset, meaning that each audio would produce different signals randomly. This is why the F.M compression was scrapped in favour of a more consistent, noise reductive A.M signal.