← Stories

Prompting the Norway Story

How I built my travel scrapbook of my Norwegian road trip using Codex.

Read the Norway story ↗
Generated field-journal layout with a road diagram, pencil sketches, and waterfall photographs
August 31. The field-journal concept I chose. Generated art: GPT Image, directed with GPT‑5.6 Sol. The photographs and route are illustrative.

After I got home from Norway, I started using ChatGPT to get my head around some of the family history we'd discussed on the trip. My mom and I had dedicated part of our time there to visiting relatives and learning more about our genealogy. I was making a few one-off pages about the families and the farms we'd visited.

At the same time, I was playing around with image prompts based on photographs I'd taken on the trip, trying them in different styles. Some paired photographs with pencil drawings. Others made the pictures fade into paper. From there, I got curious about building a little scrapbook from my photographs.

Generated pairing of a Fridtjov statue photograph and a pencil interpretation
August 31. A saved ChatGPT experiment pairing a photograph with a pencil drawing. Image: GPT Image.
Generated waterfall photograph with a Norwegian postage-stamp treatment
August 31. A saved ChatGPT stamp experiment. Image: GPT Image.

I already had quite a bit of information to start from. This was one of the first trips where I'd used ChatGPT more heavily to plan routes, partly around weather conditions and car charging locations. I'd kept making decisions in that same conversation along the way.

I asked ChatGPT to summarize where we'd actually gone, which gave me a day-by-day account of the trip. I brought that into Codex with my photographs and the details I remembered. I wanted the Norway story to follow the drive, with a path that moved through the places we'd visited and paused at the photographs.

I've included some of my prompts and Codex's replies on the left, alongside the parts of the story they relate to.

My opening prompt, August 31
  1. Create a website that is a road trip photo album that's dynamic, and you can scroll through it day by day.

  2. Codex · GPT‑5.6 Sol

    I’ll first inspect this project’s existing structure and guidance, then produce the initial design direction without inventing visits marked uncertain or skipped.

First, I started honing in on the design. Codex generated three concepts, and I chose the field journal shown at the top of this post. I liked the paper, the pencil drawings, and the red path through the photographs.

My approach was to generate concept art, choose a direction, and refine it before building the working version. Sometimes I wanted to combine parts of two concepts. I kept using that approach as I added more to the site.

We started with one day so I could see how it worked. Once I had something I could scroll through, I wanted to keep going and bring in the rest of the trip.

August 31. The first Day 5 prototype. Silent recording.

I had a day-by-day summary of the trip, and we could fill in some of the gaps using the EXIF metadata from my photographs. The dates helped put the photographs in order, and the location information helped place some of our stops on the map.

I brought in my Hasselblad film photographs too, using what I remembered from the trip to work out where they fit. The finished album has 125 photographs.

Adding the film photographs, September 18
  1. I added more photos to the export folder, integrate them into the correct page and day, there are a lot of new hasselbald film photos

  2. Codex · GPT‑6 Astra

    I’ll compare the new exports with the album’s photo inventory, identify their days and stops, and integrate them into the matching chapters.

I kept adding context about the people in the pictures, the farms we'd visited, and the family connections we'd talked about. I also had to go back through the earlier conversation and sort out which places we'd actually visited and which we'd only planned to see.

Once I had the photographs and the account of the trip together, I started wondering what else we could bring into the scrapbook. I began pushing Codex to find road data, drawings, and videos of the places we'd visited.

The path was one of the first things I kept pushing. At Trollstigen, the switchback road, I liked the idea of following it up a sketched model of the mountain.

Making the road drawing three-dimensional, August 31
  1. I wonder if we could also make the Trollstigen view 3D, like the line stuff. I wonder if we can do it in a 3D way to make it more cool and have it three-dimensional, with the same line style but three-dimensional, and have it follow along as you're scrolling through the photos.

  2. Codex · GPT‑5.6 Sol

    I’ll turn the Trollstigen close-up into a restrained axonometric road drawing: the same surveyed centerline, tilted into depth using its elevation data, with a faint graphite underlay and the vermilion trace advancing through the photo scroll.

  3. The selected mountain concept

    Generated terrain block with a red switchback road drawn over a mountain
    September 1. A generated Trollstigen concept. The terrain figures below use measured data. Image: GPT Image.

Initially, it was just a generic path. I started giving Codex map screenshots and asking it to get the actual road and location data. I wanted it to follow the bends we'd driven.

Getting closer to the real road, August 31
  1. Look at the photos. See if there are more detailed roadmaps, engineering drawings, or other details you can use to make our outline and the follow-on queue more accurate at that level of detail.

  2. Codex · GPT‑5.6 Sol

    I’m pulling the road authority’s centerline now so the animation follows the surveyed road instead of merely looking “switchback-like.”

For Trollstigen, I pushed it to get real topographic data too. I wanted to keep the drawing style, but have the mountain and the road based on the actual place. I kept refining the concept and the working version from there.

My prompt, August 31
  1. Find the real terrain data.

  2. Codex · GPT‑5.6 Sol

    I’ll use official Norwegian elevation data for the full visible terrain footprint, retain the official road centerline, and only then tune the camera and cut-model treatment to match the reference.

  3. The terrain and road data behind the drawing

    Trollstigen height samples and contour lines with the actual surveyed road in red
    Trollstigen's switchbacks over the measured terrain. Terrain: ©Kartverket, CC BY 4.0. Road: Statens vegvesen, NLOD 1.0.
    A perspective wireframe of Trollstigen’s measured terrain with the surveyed road climbing through its switchbacks
    The same terrain in 3D, with the road in red.

Codex found the road line from Norway's road authority and elevation data from Kartverket, the national mapping agency. It used those to build the hillside and place the road on it.

By the time I got to the part of the trip where I rode a wheelbob at the Lillehammer Olympic track at Hunderfossen, I wanted to try something more interactive. A wheelbob is a bobsled on wheels for the summer season.

Starting the bobsled model, September 1
  1. Alright, for the bobsled track day, we want to do an interactive 3D model of the bobsled track, which should be accessible online.

  2. Codex · GPT‑5.6 Sol

    I’ll first pin down which chapter is the bobsled day, how the existing 3D road passages are built, and whether there’s trustworthy online geometry for the Lillehammer track.

I wanted to follow the course just behind the sled as I scrolled. I asked Codex to find the actual track data and started working through concepts. The first ones were too realistic, so I pushed it to keep our sketching style.

My prompt, September 1
  1. That's probably too realistic. Let's keep it within our current sketching style.

  2. Codex · GPT‑5.6 Sol

    I’ll regenerate the three directions as close-up 3D sketches: ivory paper, graphite construction lines, faceted channel surfaces, and restrained vermilion, with fog expressed as fading linework rather than photographic atmosphere.

  3. Selected concept studies

    Generated simplified bobsleigh chase-view concept
    September 1. The simpler bobsled concept. Image: GPT Image, directed with GPT‑5.6 Sol.
    Generated charcoal-style bobsleigh chase-view concept with marks fading into paper
    September 1. The charcoal direction I chose. Image: GPT Image, directed with GPT‑5.6 Sol.

I wanted to keep the drawing theme, so I chose the rougher charcoal direction. The first working model was pretty close, but some of the physics and track details seemed backwards. I gave Codex photographs of the sled and a YouTube video of the track. I asked it to run the model and video side by side, compare them frame by frame, and fix the curves and details that didn't look right.

Screenshot of the Codex conversation beside an early working bobsleigh model
September 1. Codex beside an early working version, before the track and sled corrections.
My feedback after comparing the model with the video, September 1
  1. Doesn't the bank at the end seem the wrong way? The physics seem wrong. It seems to be inverted. If you look at the actual video of the track, I think the wall is on the other side.

  2. Codex · GPT‑5.6 Sol

    I’ll compare the terminal bank in the current model with the matching part of your video, then trace the turn-direction and banking math. I’ll identify the cause first before changing the geometry.

  3. Recovered video inspection frames

    Recovered YouTube inspection screenshot showing the covered straight at the beginning of the wheeled bobsled run
    September 1. The start of the ride, captured during the video check. Video: POV Wheelbob Lillehammer by TrackTimingTechnician.
    Recovered YouTube screenshot at 0:58 showing the high wall of a banked bobsled turn
    September 1. The banked turn at 0:58, captured during the same video check.

Codex checked the video against the model and found that the bank was reversed. I figured an Olympic track would have plenty of detailed drawings, especially with all the racing it's used for. I kept asking Codex to find them.

Asking for the track plans, September 1
  1. Isn't the actual track architecture and plan online for the bobsleigh? Can you get that data?

  2. Codex · GPT‑5.6 Sol

    I’m looking for the best available plan/profile or homologation-style drawing: curve sequence, handedness, radii, wall/bank geometry, elevations, and start/finish stations.

  3. The recovered track references

    1993 architectural site plan of the Lillehammer bobsled track, with bends, terrain contours, and a scale bar
    The 1993 track plan found during the bank correction. Source: Byggekunst 5–6/1993, page 376, Arkitektur N.
    Olympiaparken track map showing the numbered curves of the Lillehammer bobsled course
    The operator's map, used to check the bends. Source: Olympiaparken.

Codex found a 1993 site plan and the operator's map, but I was surprised how little was available online. Maybe more of it just hasn't been digitized. What we found helped us check the bends, though we still didn't have exact measurements for every bank.

Comparing the track shape with the footage, September 1
  1. Also, look at the video I sent you and make sure the shape of the track is correct. It's kind of squared, with hard edges that are not always rounded. It doesn't need to be accurate all the way, but focus on getting the general model working.

  2. Codex · GPT‑5.6 Sol

    I’ll rebuild this as one coherent track system: the fly-through mesh, the left-hand plan drawing, and the moving position marker will all derive from the same corrected course geometry.

Refining the protective cage, September 1
  1. Great, can we work on the bobsled model again? Can we make the arch cage more arched like it is in the photographs?

  2. Codex · GPT‑5.6 Sol

    The current cage is a faceted flat-topped rectangle; I’ll rebuild each hoop as a smoother continuous arch, then check the rear chase view against the side and rear photographs at desktop and phone sizes.

  3. A later recording of the ride

    September 1. A later version after track, sled, and style corrections. Silent recording.

Once I had my crazy little bobsled mini-game working, I started thinking about other parts of the trip where we could try something similar.

One was Hardanger Bridge, which I'd crossed the year before with friends. You drive through a 7 km tunnel and an underground roundabout, then get spat out onto this modern suspension bridge. It feels like a scene from Blade Runner 2049. I wanted to recreate that on the site.

Exploring the bridge crossing, September 2
  1. Let's use Product Design Image Gen, like we did for Bob. This would have a quick fly-through of the bridge, going along with the scroll in 3D, but it looks like an engineering drawing blueprint. I want a few different ideas.

  2. Codex · GPT‑5.6 Sol

    I’ll anchor them to the Day 05 bridge/tunnel geometry and the restrained engineering-drawing treatment we used around the bobsleigh work.

  3. The initial bridge concepts

    Generated side-view concept for Hardanger Bridge with pencil shading and dimension lines
    September 2. A generated side-view concept with illustrative dimensions. Image: GPT Image, directed with GPT‑5.6 Sol.
    Generated cutaway concept showing the underground roundabout, tunnels, and Hardanger Bridge from above
    September 2. A generated cutaway of the tunnels and underground roundabout. Image: GPT Image, directed with GPT‑5.6 Sol.

I liked the cutaway showing how the tunnels connected to the bridge, and I liked the view from the road. I asked Codex to combine them so we could move from the drawing into the crossing.

My prompt after looking at the bridge concepts, September 2
  1. It'd be cool if we could show the tunnel zoomed out as a kind of drawing, and then, as we scroll down, it transitions to a 3D fly-through, as if you're going through the bridge spans like in a car, in kind of accelerated fashion.

  2. Codex · GPT‑5.6 Sol

    It takes the spatial clarity of the third concept and the roadway immersion of the first: begin with the entire tunnel–roundabout–bridge cutaway, then let scroll push the camera into the route until the drawing becomes a fast, car-height fly-through.

  3. Combined concept

    Generated bridge proposal combining a tunnel cutaway, engineering-style studies, and a view along the roadway
    September 2. The combined camera concept. Real construction drawings supplied the model dimensions. Image: GPT Image, directed with GPT‑5.6 Sol.

After a few rounds of concept art with ChatGPT, I kept asking for blueprints and as much data about the bridge as possible. I figured there had to be engineering drawings somewhere that we could build a model from.

My prompt after the first bridge search, September 2
  1. I'm sure you can easily make a model from the blueprints that are probably publicly available online as well. I'm sure there's gotta be some civil engineering or some sort of other documentation online.

  2. Codex · GPT‑5.6 Sol

    I’ve downloaded the Bu tower form drawing, Vallavik tower form drawing, top-crossbeam detail, and a consolidated drawing set into a temporary research folder.

  3. Construction drawings recovered from the research

    Hardanger Bridge construction sheet K401 with tower elevations, sections, and measured widths
    K401. Tower dimensions from Statens vegvesen, public tender drawing archive.
    Hardanger Bridge drawing K929 showing the suspension span in elevation and a section through the road deck
    K929. The bridge and road-deck section. Source: Statens vegvesen.

Codex found construction drawings in a public tender archive. I kept them open beside the chat and watched it slowly build a 3D model from the blueprints.

Screenshot of Codex researching Hardanger Bridge and generating a bridge concept, with official tower detail drawings open beside the conversation
Codex and the generated concept beside real tower drawings from the road authority.

I kept using the concept to guide how the crossing should feel, and the construction drawings to check the structure. With both, we could keep refining the model and the movement.

Checking the bridge while building it, September 2
  1. Let's work on that and make sure the bridge is accurate. Check your work as you work through it.

  2. Codex · GPT‑5.6 Sol

    I’ll first reconcile the bridge and tunnel geometry against the engineering documents and the existing route data, then build the scroll scene and inspect it at desktop and mobile as I go.

  3. The working crossing

    September 2. The early drawing-to-crossing sequence. Silent recording.

I'd visited Copenhagen on my own the day before the Norway trip. I wanted to show my climb around the outside of the tower at Vor Frelsers Kirke. After building the bridge, I figured we could find drawings to build the tower from too.

Looking for the tower drawings, September 2
  1. You can always do what you did for the bridge. You can find the blueprints and see if you make it. We just need the tower part.

  2. Codex · GPT‑5.6 Sol

    I’ll treat it like the bridge: reconstruct only the distinctive spire and exterior spiral from measured architectural references, keep the model editorially honest, and place it at the moment between the late-afternoon street photos and the rooftop view from the climb.

I gave Codex my photographs and asked for a sketch concept in the style of the other models.

Finding the sketch direction, September 2
  1. Use image gen to visualize if we did it in the wireframe or sketch style of the other 3d renders we have

  2. Codex · GPT‑5.6 Sol

    I’ll use the image-generation skill to make a visual concept, using the real tower photo for structure and one of the album’s existing 3D drawing renders for the graphite-and-warm-paper style.

  3. The selected tower concept

    Generated sketch concept of the Copenhagen church tower, with pencil construction lines beside a shaded tower study
    September 2. The sketch concept I chose as a target for the tower rebuild. Image: GPT Image, directed with GPT‑5.6 Sol.

I liked this direction, but the early working model looked like a cone with stairs attached. I kept pushing for better drawings so we could get the shape closer.

Pushing for better architectural references, September 2
  1. Research architectural drawings, models, or more online. I'm sure there are more accurate blueprints or something that can help you out.

  2. Codex · GPT‑5.6 Sol

    I’ll prioritize measured elevations, sections, and plan drawings of de Thurah’s spire, then use those to correct the silhouette and verify the next render against both the drawing and your reference.

  3. The museum elevation and plans

    Historic measured elevation of the spiral spire of Vor Frelsers Kirke, with the exterior stair and a tread plan
    The measured spire drawing, attributed to Lauritz de Thurah. Nationalmuseet, DMR-174031. Public domain.
    Historic horizontal framing plans of the church spire showing its octagonal core
    Plans from the same sheet showing the eight-sided structure. Nationalmuseet, DMR-174031. Public domain.

Codex found a measured drawing in the Danish National Museum's collection. It showed the eight-sided structure inside the winding staircase. Even with that, I kept getting a model that didn't look like the drawing.

The model still looked like a cone, September 2
  1. It's still not looking like the drawing. It's still looking too cone-shaped and not helix-like. I'm not going to accept a thing that looks like a big cone. The final thing still doesn't look like a sketch.

  2. Codex · GPT‑5.6 Sol

    I’m using the image-to-code workflow because your drawing is the acceptance reference now: I’ll make the helix dominate, correct the façade geometry that is currently reinforcing the cone, and shift the render from solid shaded mass to layered pencil/ink linework.

I also tried asking ImageGen to make a clearer study of the proportions, using the photographs and drawings as references.

Trying a generated proportion guide, September 2
  1. Maybe from reference images you can use ImageGen first to generate your own blueprints, then use that to make a 3D model.

  2. Codex · GPT‑5.6 Sol

    I’ll inspect that blueprint before translating it into geometry.

  3. The generated proportion study

    Generated three-view proportion study of the Copenhagen spire
    A generated tower study for the revisions. Image: GPT Image, directed with GPT‑5.6 Sol.

With GPT-5.6 Sol, I really couldn't get the model to be better. I kept giving it photographs, drawings, and feedback, but I couldn't get it where I wanted it.

Screenshot of the Copenhagen page with an intermediate tower model
September 4. An intermediate tower model that still needed work on its proportions.
Another pass with Astra, September 4
  1. All right, it's looking a little better, but it still has hard corners instead of a smooth spiral. Look at photos and drawings of the actual tower in Copenhagen.

  2. Codex · GPT‑6 Astra

    I’ll check photographs and the historic drawings against the current geometry, especially the outer spiral and the transitions between turns.

Only when GPT-6 Astra came out could I actually get a better 3D model. Astra was much better at 3D modeling. I could keep refining the tower and get it closer to the photographs and the drawing.

For Cirkelbroen, I gave Codex a video showing the bridge from above. I wanted to see if we could make a drawing that moved as the bridge opened.

Planning the opening bridge study, September 3
  1. Let's do some research and see if we can find blueprints and architectural drawings for it. After that, do some concept art for a bird's-eye view (looking down) sketch view, with an animation showing how it opens up.

  2. Codex · GPT‑5.6 Sol

    I’ll first trace Day 00’s existing map/route-detail structure, then research the bridge through architectural and municipal sources.

  3. The selected overhead concept

    Selected overhead concept for Cirkelbroen, showing circular platforms and a red opening movement across the canal
    September 3. The overhead concept I chose. The moving platforms still needed correction. Image: GPT Image, directed with GPT‑5.6 Sol.

I liked this concept, but I wanted to check how the real bridge moved. I'd asked Codex to find architectural plans as well.

Checking how the bridge really moves, September 3
  1. I like this, make sure it's accurate though

  2. Codex · GPT‑5.6 Sol

    One important accuracy correction from the engineering drawings: P1 and P2 stay fixed; the moving leaf is P3–P5, rotating about P3’s fixed center by roughly 63.5°.

  3. The closed and open engineering plans

    Published closed plan of Cirkelbroen showing its five staggered circular platforms labeled P1 through P5
    Cirkelbroen closed. Design: Studio Olafur Eliasson. Engineering: Ramboll. Source: EUmies Awards project archive.
    Published open plan of Cirkelbroen showing three platforms rotating together to clear the canal
    Cirkelbroen open. Two platforms stay fixed while three turn together. Same project and source.

The open and closed drawings showed that two platforms stay still while three turn together. The generated concept had that wrong. We used the plans and the video to correct it when building the animation.

September 3. The opening study beside the bridge photograph. Silent recording.

While I was working through all these ideas, I kept refining and editing my photographs, updating them in the site, and working on the copy. I went back through the family passages to explain the connections and correct the details. I also asked Codex to use my Darkroom page as a reference for how I write.

Adding the car museum detail, September 22
  1. I think the car museum we went to also deserves a mention. I might add some more photos, but there's a troll car that was at the museum.

  2. Codex · GPT‑6 Astra

    Expanded Day 7 with the car museum and Troll car.

The cover took a few iterations too. We tried generated backgrounds with space for photographs, and I ended up putting the final photographic cover together myself.

Making backgrounds for my own photo composition, September 28
  1. Can you just give me the variants with the text and title and line and bridge backgrounds? I'll add the images mayself

  2. Codex · GPT‑6 Astra

    I’ll make three background-only variants with the title, winding red line and a subtle bridge in the corner, leaving space for you to add the photos.

  3. The background and my final cover

    Generated Norway cover background with a title, route line, and bridge drawing
    September 28. A generated background for composing the cover by hand. Image: GPT Image, directed with GPT‑6 Astra.
    Final photographic Norway cover with a fjord, misty road, stave church, and yellow farm building
    September 28. The photographic cover I composed.

The prompts shown here are only a selection. Across 31 Codex chats, I sent 222 prompts and follow-ups while building the scrapbook.

Weekly prompts by purpose, August 31–September 28, 2026. Lines scaled per row.
PurposeAug 31143 promptsSep 147 promptsSep 2141 promptsSep 2831 prompts
Refining and correcting85 · 38.3%583159
Project organization30 · 13.5%132105
Photos and context27 · 12.2%92106
Concepts and design27 · 12.2%19017
Building features20 · 9.0%19010
Research and references20 · 9.0%15014
Testing and review13 · 5.9%10030

If you're curious what all those API tokens cost, here's the breakdown for building the scrapbook.

Estimated text and code processing, USD. Rates checked October 2, 2026.
ModelProcessed tokensAPI-equivalent cost
GPT‑5.6 Sol793.05 million$442.91
GPT‑6 Astra257.47 million$378.52
Total1.05 billion$821.43

I have a ChatGPT Pro 20x account, so I don't pay per token. This is what it would cost if it was just making this at API prices.

← All stories