Inspiration

Most resumes are static, text-heavy, and hard to remember. I wanted to explore whether a resume could become something more visual, immersive, and personal. The idea behind Marble Resume World was simple: turn professional experience into a cinematic, explorable 3D environment using AI, so a person's work, skills, and identity could be presented as a spatial portfolio instead of a flat document.

What it does

Marble Resume World takes a resume as input and transforms it into a personalized Marble AI world prompt. The app extracts resume text from uploaded PDF, DOCX, or TXT files, analyzes the content with Gemini, and converts the candidate's experience into a curated portfolio-room concept. That concept is then refined into a stronger cinematic world prompt and sent to World Labs Marble to generate an actual 3D world.

The result is an interactive portfolio-style environment that reflects the user's professional background through layout, mood, materials, focal objects, screens, shelves, and symbolic details.

How I built it

I built the project as a web app using Next.js with App Router. The frontend handles file upload, progress, world prompt presentation, and generated world access. The backend processes resume files, extracts text from PDF, DOCX, and TXT inputs, sends the resume text to Gemini for structured worldbuilding, and then calls the World Labs Marble API to generate the final world.

The core pipeline is:

  1. Resume upload.
  2. Resume text extraction.
  3. Gemini-generated room concept and visual prompt.
  4. Marble world generation request.
  5. Polling for operation completion.
  6. Return of the final world link.

I also tuned the prompt-writing logic to improve visual quality by emphasizing spatial coherence, premium materials, lighting, focal points, cleaner composition, and cinematic atmosphere.

Challenges I ran into

One of the biggest challenges was getting resume parsing to work reliably across file types. PDF parsing was especially tricky because different libraries behaved differently inside the Next.js environment. I initially ran into import issues, worker issues, and parsing setup problems before switching to a cleaner server-side approach that worked more reliably.

Another major challenge was prompt quality. It was not enough to simply summarize a resume; the generated world had to look visually strong and coherent. That meant iterating on the prompt strategy to make the output more cinematic, less cluttered, and more spatially readable.

I also had to make the frontend much clearer so the important parts of the result, especially the generated Marble world link and prompt, stood out visually.

What I learned

I learned that building with generative 3D systems is as much about prompt architecture as it is about code. Small changes in visual language, layout instructions, and object selection can make a big difference in world quality. I also learned a lot about handling unstructured input like resumes and converting it into structured creative output.

On the engineering side, I learned how to combine file parsing, LLM-based transformation, and asynchronous external API workflows into one coherent experience.

What's next

The next step is to make the system even more interactive and polished. We want to add:

  • editable extracted resume previews before generation,
  • style presets such as minimalist, cinematic, futuristic, and cozy,
  • stronger world preview flows,
  • richer visual controls for prompt shaping,
  • and eventually resume-to-image-to-world pipelines for even better environment generation.

We also plan to add hand and facial movement tracking so users can explore the generated world without relying on traditional physical interaction, making the experience feel more immersive, natural, and accessible for both creators and viewers.

The long-term goal is to turn resumes into memorable, immersive personal worlds that feel both professional and expressive.

Built With

Share this project:

Updates