## Inspiration 🌟

Creative writing is hard. Like really REALLY hard. Trying to come up with a fresh story can seem very intimidating, and if given a blank page, most people would probably just ponder endlessly... "where do I even start???"

## What it does 📕

Introducing **TaleTeller**, an interactive gamified experience designed to help young storytellers create their own unique short stories. It utilizes a "mad libs" style game format where players input five words to inspire the start of their story. The AI will incorporate these words into the narrative, guiding the direction of the tale. Players continue the tale by filling in blanks with words of their choice, actively shaping the story as it unfolds. It's an engaging experience that encourages creativity and fosters a love for storytelling.

## How we built it 🔧

TaleTeller utilizes the Unity Game Engine for its immersive storytelling experience. The AI responses are powered by OpenAI's GPT4-Turbo API while story images are created using OpenAI's DALL-E. The aesthetic UI of the project includes a mix of open course and custom 2D assets.

## Challenges we ran into 🏁

One of the main challenges we faced was fine-tuning the AI to generate cohesive and engaging storylines based on the player's input (prompt engineering is harder than it seems!). We also had a lot of trouble trying to integrate DALL-E within Unity, but after much blood, sweat, and tears, we got the job done :)

## Accomplishments that we're proud of 👏

* Having tons of fun creating fully fledged stories with the AI
* Getting both GPT and DALL-E to work in Unity (it actually took forever...)
* Our ✨ *gorgeous* ✨ UI

## What we learned 🔍

* How to prompt engineer GPT to give us consistent responses
* How to integrate APIs in Unity
* C# is Tony's mortal enemy

## What's next for TaleTeller 📈

Training an AI Text-to-Speech to read out the story in the voice of Morgan Freeman 😂
## Inspiration

In a world where screens and the passive consumption of content have become the norm, we sought to make a game that was fun while also allowing friends to work together and exercise their creative muscles to build stories together. We hoped to blend our passion for games and software development with our love of reading.

## What it does

Story Builder empowers youth and teenagers to become 'Authors' of their own stories and inspire a lifelong love for reading. Writers explore a gamified world of storytelling, collaborating with others to craft engaging narratives. Authors join an online room where the game code is the "Title" of their story, and they take turns putting a single word or sentence to the story. At any point, any author can end the adventure, moving on to the next phase.

An API call to OpenAi is made to summarize the written story and engineer the prompt to interface well with the Metaphor API, whose AI model reads the summary and returns links to books that align with the creative journey.

In simpler words, what Story Building does is to inspire a love of storytelling and imagination among people who play it 📚.

## How we built it

We used React, Bootstrap, and CSS were used to develop the frontend, along with Node.js, Socket.io, and Puppeteer to implement the backend. We utilize the LLM provided by OpenAI's API for the story summarization and leveraged Metaphor API to provide book recommendations and their websites, as scraped from goodreads.com.

## Challenges we ran into

* Designing the platform to give a smooth user interaction
* Web scraping the Goodreads website (we had to use a package called Puppeteer in order to wait for javascript scripts to finish dynamically rendering before we could access the raw webpage html)
* Integrating frontend ~ backend
* Discovering the best use of Metaphor's capabilities in our project (we explored a TON of different applications before we settled on this one because we felt it best leveraged the creative advantage of the API as compared to more generic search models)

## Accomplishments that we're proud of

We are proud of the number of features and technologies we could implement given our limited crew, in addition to the new skills that uniquely aggregate us despite our different hackathon familiarity. We learned a ton of new technologies. We were a team of 2, one of whom is a beginner, so it was a great learning experience :)

## What we learned

On top of the technical knowledge of software development, we felt the importance of collaboration and organization, both of which are essential for delivering successful projects and fostering a productive work environment.

## What's next for Story Builder

* Story Archives: Create an archive where players can revisit and edit their completed stories. We were thinking of implementing this using USBs.
* AI Image Summary: Given the summary used in Metaphor to return the books, we can also use it as a prompt into a text-to-image model, illustrating the story.
* AI-driven Story Guidance: Utilize AI algorithms to provide subtle hints or suggestions to guide the story when players encounter creative blocks.
* E-commerce referral links: Instead of listing books' websites, we can connect referral links like Amazon's to generate revenue for each time an Author buys a book from our list, creating a business model.
## Inspiration

Initially, we struggled to find a project idea. After circling through dozens of ideas and the occasional hacker's block, we were still faced with a huge ***blank space***. In the midst of all our confusion, it hit us that this feeling of desperation and anguish is familiar to all thinkers and creators. There came our inspiration - the search for inspiration. Tailor is a tool that enables artists to overcome their mental blocks in a fun and engaging manner, while leveraging AI technology. AI is very powerful, but finding the right prompt can sometimes be tricky, especially for children or those with special needs. With our easy to use app, anyone can find inspiration as swiftly as possible.

## What it does

The site generates prompts artists to generate creative prompts for DALLE. By clicking the "add" button, a react component containing a random noun is added to the main container. Users can then specify the color and size of this noun. They can add as many nouns as they want, then specify the style and location of the final artwork. After hitting submit, a prompt is generated and sent to OpenAI's API, which returns an image.

## How we built it

It was built using React Remix, OpenAI's API, and a random noun generator API. TailwindCSS was used for styling which made it easy to create beautiful components.

## Challenges we ran into

Getting tailwind installed, and installing dependencies in general. Sometimes our API wouldn't connect, and OpenAI rotated our keys since we were developing together. Even with tailwind, it was sometimes hard for the CSS to do what we wanted it to. Passing around functions and state between parent and child components in react was also difficult. We tried to integrate twiliio with an API call but it wouldn't work, so we had to setup a separate backend on Vercel and manually paste the image link and phone number. Also, we learned Remix can't use react-speech libraries so that was annoying.

## Accomplishments that we're proud of

* Great UI/UX!
* Connecting to the OpenAI Dalle API
* Coming up with a cool domain name
* Sleeping more than 2 hours this weekend

## What we learned

We weren't really familiar with React as none of use had really used it before this hackathon. We really wanted to up our frontend skills and selected Remix, a metaframework based on React, to do multipage routing. It turned out to be a little overkill, but we learned a lot and are thankful to mentors. They showed us how to avoid overuse of Hooks, troubleshoot API connection problems, and use asynchrous functions. We also learned many more tailwindcss classes and how to use gradients.

## What's next for Tailor

It would be cool to have this website as a browser extension, maybe just to make it more accessible, or even to have it scrape websites for AI prompts. Also, it would be nice to implement speech to text, maybe through AssemblyAI