Seatline Kolkata

Inspiration

Picking a seat in a cinema is actually a decision that has a spatial element disguised as a grid.

A standard seat map will let you know if a seat is available, but it won't tell you how the screen will look from that seat. How far away is it? How far to the side will the view be? Will the row in front obstruct the view? For many visitors, particularly those who are concerned about comfort or accessibility, it is only after they get to the theatre that they find out the answers to these questions.

The idea on which Seatline Kolkata was based was that picking a seat should be more like previewing a venue than merely choosing a square on a diagram. The setting for this idea was Kolkata's unique cinema culture, which includes heritage theatres, modern multiplexes, luxury auditoriums and various different room shapes.

What it does

Seatline Kolkata is an experience which puts the guest first and which is non-binding.

People are able to look at six venue profiles in Kolkata, select a preview date and time, check the availability of seats, and from any available seat enter a measured 3D view. For each seat sightline figures are provided:

  • Screen distance
  • Horizontal offset
  • Vertical viewing angle
  • Screen angular width
  • Forward-row clearance
  • Overall rating: Exceptional, Great, Good, or Compromised

The experience becomes native to the agent via WebMCP. A visitor can then ask:

Get me a clear great sightline at Nandan tomorrow evening.

The agent has the capability of searching the venue directory, examining the modelled seats, choosing a suitable seat, moving the Three.js camera to that seat's modelled eye point and then opening the seat summary. The visitor will still be in control and can continue to explore manually.

Seatline doesn't reserve seats, handle payments, scrape ticketing websites, or take live inventory; the information about availability, prices, showtimes, and room dimensions is merely preliminary data.

How I built it

Seatline Kolkata makes use of Next.js, React, TypeScript and Three.js and has its deployment on Cloudflare Workers, the trailer media being stored in Cloudflare R2.

WebMCP is implemented with five merchant-authored tools:

  • ask_site
  • search_venues
  • inspect_seats
  • select_preview
  • review_summary

The tools employ strict schemas and stable identities and make use of the same pure venue, seat-generation, availability and sightline functions as those used by the visible interface, which ensures that the agent's results match those on the visitor's screen.

The camera and the metrics are based on the same geometry model; the eye point is determined by the selected seat and this same point is then used when calculating distance, angles, screen width and clearance. This ensures that the experience remains measurable rather than merely decorative.

Challenges I ran into

The main difficulty was ensuring that there was a single source of truth among the three systems: the semantic seat map, the Three.js scene and the WebMCP tool execution. When an agent made a selection, it had to update the controls, the seat state, the camera mode and the summary dialogue without setting up a second data model.

I also needed a form of seat availability that was deterministic and varied from venue to venue, from date to date and from showtime to showtime while ensuring that each venue's default seat remained available. The camera position had to appear physically reasonable without being artificially raised in order to get a better view.

In the end, it was necessary for the project to keep it as a static page that loaded quickly, at the same time as storing the large original trailer files in R2 rather than converting them.

Accomplishments that I'm proud of

I am proud that Seatline Kolkata turns a familiar seat map into a tool which enables spatial decision-making. Rather than just describing the page, the agent carries out the same preview logic that a person would use and then passes the result back to the visual interface.

I am likewise proud of the clarity of the product boundary since Seatline is useful before a booking is made without pretending to be a ticketing system or stating that it cannot verify the inventory.

What I learned

I discovered that good WebMCP tools should convey user intent rather than revealing their internal implementation details; for example, "Find a great seat" is more useful than requesting the agent to directly manipulate the rows and columns.

I found that collaboration between humans and agents is most effective when the agent carries out the structured discovery and the person is in charge of visual judgment; the agent can reduce the number of options while the person decides if the view is acceptable.

What's next for Seatline Kolkata

I would also like to collaborate with the cinemas that are taking part to substitute the representative geometry with the approved auditorium dimensions, include more detailed accessibility annotations, and provide support for both Bengali and English.

By means of its authorised partners, Seatline would eventually be able to connect to reliable availability feeds while still maintaining its transparent preview-first experience, and features such as optional secure sign-in, saved comparisons, and the ability to view seats side by side would also increase the product's usefulness for returning visitors.

Built With

Share this project:

Updates

Submission history