The City of Syracuse’s Office of Accountability, Performance, and Innovation launched an open data challenge this month, with a prompt of using the Syracuse Public Art dataset to build an interesting visualization, web app, or something else interesting. I was excited to see the office bring back these kinds of challenges after a few that I ran as CDO (Plowing Through The Data, Syracuse Roads Data Challenge), and it is thrilling to know the Open Data Syracuse (formally DataCuse) continues to thrive.
Public art is part of what makes cities special, and I’m almost always a proponent of more public art. For this challenge, I thought it would be fun to delegate the creation of new public art to what else? OpenAI. The release of OpenAI products including DALL·E and ChatGPT are exciting and a little unnerving/scary.
For this challenge I wanted to see if I could do two things:
- Show the ChatGPT API all of the data about Syracuse Public Art and ask it to tell me what a new piece of art’s name, location, material, and description should be
- Take the ChatGPT information and pass it to the DALL·E API and have it create an image of that piece of art
I created a repository of code and outputs from this work here (pay no attention to the poorly formatted code, I got the job done). You should be able to try this, too, you just need your own OpenAI API key which you can get here.
I asked ChatGPT the following question and provided it with the underlying data from the open data portal (note that there are about 80 pieces of art, ChatGPT would only read through about half of them, so each time I provided the API data, I randomly sampled 40 rows of data from the full dataset):
based on the following csv, please suggest what a new work of syracuse public art would be and recommend and list out the following information - only list this information do not give me an introduction about the piece:
- material used to create the piece
- description of what the piece looks like
ChatGPT then recommended the following:
Name: Steel Grace
Location: Thornden Park
Material: Stainless steel
Description: This sculpture will be made of stainless steel and will be located in Syracuse’s historic Thornden Park. The sculpture features a spiral design that is both modern and elegant. The spiral design represents the interconnectedness of all things and is meant to convey a sense of unity and harmony. The sculpture will be installed on a stone base and will be meant to be viewed from all angles. Visitors to Thornden Park will be able to enjoy this beautiful piece of public art and contemplate the many meanings and interpretations of the steel grace sculpture.
I then took this information and fed it to the DALL·E API and it created this piece:
This was pretty cool. The only thing I told the OpenAI APIs was what other public art pieces were in Syracuse, where they were located, and what they were built with. From that, I was able to create a brand new piece of art. So then I wanted to go a step further and create an app to autogenerate these. I used Streamlit because it is easy to get up and running. NOTE: you can access the code to get the app up and running, but since the OpenAI APIs are not free, I didn’t make the app itself available.
With the same inputs and outputs, I was able to get the description of a new piece of art, plus could create a map to show the location that was being recommended. Unfortunately, I could not figure out how to embed the image of the structure into the app — I think OpenAI is blocking the ability to download or embed these images. This is what the app would look like:
Overall, this is pretty cool. OpenAI’s ability to generate this kind of output is based on it building its frame of reference thanks to the work of many artists and other content creators on the internet, so we should acknowledge that there are some issues with how this all gets built. But, the potential to create pathways to new ideas and generate new things based on relatively little input is impressive. Beyond this specific art challenge, there are a number of other use cases where this could be impactful. There is so much open data available, asking ChatGPT to make sense of it may not solve a problem, but could bring to light interesting findings that could lead to new ways to approach problem solving.
Congrats to the API team for continuing to innovate and push open data to the community!
Some other examples of images created: