Skip to main content

Overview

Timepoint Pro exports dialogs as Fountain screenplay format, a plain text markup language for screenwriting. Fountain files can be opened in Final Draft, Highland, Fade In, and other screenplay software. This format is ideal for:
  • Human-readable dialog visualization
  • Screenplay software import
  • Production planning
  • Narrative review

Fountain Format Specification

Fountain uses simple markup conventions:
Title: Mars Mission Crisis
Credit: Generated by Timepoint-Pro
Draft date: 2026-03-06
Source: mars_mission_portal

[[
Temporal Mode: portal
Scenes: 6
Characters: 4
Dialog Turns: 78
]]

INT. MISSION CONTROL - DAY

The atmosphere is tense and formal. Mission control personnel 
monitor critical systems as warnings flash on screens.

LIN ZHANG, systems engineer, frustrated, enters.

SARAH OKAFOR and RAJ MEHTA are already present, reviewing 
telemetry data.

SARAH OKAFOR
We're seeing pressure fluctuations in the oxygen generator.

LIN ZHANG
(urgent)
I flagged this issue in 2027. The failure probability is 30%.

RAJ MEHTA
Comm systems are showing similar degradation patterns.

THOMAS WEBB
We're three days from launch. Any fixes need to happen now 
or we slip the schedule by six months.

Fountain Element Types

Scene Headings

All caps, begins with INT./EXT.:
INT. MISSION CONTROL - DAY
EXT. MARS SURFACE - NIGHT
INT./EXT. SPACECRAFT AIRLOCK - CONTINUOUS

Action

Regular prose, describes what’s happening:
The atmosphere is tense and formal. Mission control personnel 
monitor critical systems as warnings flash on screens.

Character Names

All caps, precedes dialog:
SARAH OKAFOR
LIN ZHANG
RAJ MEHTA

Dialog

Follows character name:
SARAH OKAFOR
We're seeing pressure fluctuations in the oxygen generator.

Parentheticals

Character direction in parentheses:
LIN ZHANG
(urgent)
I flagged this issue in 2027.

Notes

Production notes in double brackets:
[[VISUAL: Show oxygen generator pressure gauge rising]]

Pro’s Fountain Generation

Timepoint Pro generates Fountain from simulation data:

Title Page

Title: {script_data.title}
Credit: Generated by Timepoint-Pro
Draft date: {generated_at}
Source: {world_id}

[[
Temporal Mode: {temporal_mode}
Scenes: {scene_count}
Characters: {entity_count}
Dialog Turns: {turn_count}
]]

Scene Structure

  1. Scene heading: Generated from timepoint location and time
  2. Atmosphere description: From M10 atmosphere entity
  3. Character introductions: On first appearance
  4. Interleaved action and dialog: Action beats alternate with dialog turns
  5. Visual notes: Production notes from scene metadata

Atmosphere Mapping

Atmosphere tensors → prose descriptions:
TensionFormalityDescription
> 0.7> 0.7”The atmosphere is tense and formal”
< 0.3< 0.3”The mood is relaxed and casual”
> 0.7< 0.3”The atmosphere is tense but casual”
Emotional valence:
  • > 0.5: “positive energy fills the space”
  • < -0.5: “negativity hangs in the air”
Social cohesion:
  • < 0.3: “Individuals seem disconnected”

Character Formatting

Entity IDs → character names:
"sarah_okafor""SARAH OKAFOR"
"raj_mehta""RAJ MEHTA"
"lin_zhang""LIN ZHANG"
Parentheticals from emotional tone:
emotional_tone="concerned""(concerned)"
emotional_tone="frustrated""(frustrated)"

Export Configuration

Enable Fountain export in OutputConfig:
from generation.config_schema import SimulationConfig, OutputConfig

config = SimulationConfig(
    scenario_description="...",
    world_id="...",
    outputs=OutputConfig(
        formats=["fountain"]
    )
)

Using ExportFormatFactory

from reporting.export_formats import ExportFormatFactory
from reporting.script_generator import ScriptGenerator

# Generate script structure
generator = ScriptGenerator(store)
script_data = generator.generate_script_structure(
    world_id="mars_mission_portal",
    title="Mars Mission Crisis",
    temporal_mode="portal"
)

# Export as Fountain
exporter = ExportFormatFactory.create("fountain")
exporter.export(script_data, "screenplay.fountain")

Export Pipeline

from reporting import ExportPipeline

# Export script report as Fountain
pipeline.export_report(
    world_id="mars_mission_portal",
    report_type="script",
    export_format="fountain",
    output_path="screenplay.fountain",
    title="Mars Mission Crisis",
    temporal_mode="portal"
)

Example: Mars Mission Portal

From EXAMPLE_RUN.md:
Title: Mars Mission Crisis
Credit: Generated by Timepoint-Pro
Draft date: 2026-02-18
Source: mars_mission_portal

[[
Temporal Mode: portal
Scenes: 6
Characters: 4
Dialog Turns: 78
]]

INT. MISSION CONTROL - JANUARY 2031

The atmosphere is tense and formal. Mission control personnel 
monitor critical systems as alarms sound. Red warning lights 
flash across the main display.

SARAH OKAFOR, Mission Commander, age 38, calm under pressure, 
stands at the command console.

RAJ MEHTA, Flight Engineer, cautious and analytical, reviews 
telemetry data at a nearby station.

LIN ZHANG, Systems Engineer, frustrated and exhausted, enters 
carrying technical reports.

THOMAS WEBB, Mission Director, schedule-focused, follows behind.

SARAH OKAFOR
Status report. What happened during orbital insertion?

RAJ MEHTA
(concerned)
We lost all telemetry at T-minus 30 seconds. Life support 
and communications both failed simultaneously.

LIN ZHANG
(bitter)
The oxygen generator. I warned about this in 2027. 30% 
failure probability.

THOMAS WEBB
We don't know that's the cause. Multiple systems failed.

LIN ZHANG
Because they're all connected! The O2 generator overheats, 
causes power spikes, takes down comms.

SARAH OKAFOR
Can we restore contact?

RAJ MEHTA
I'm trying alternate frequencies. Nothing so far.

[[VISUAL: Show empty radio spectrum, no signal]]

...
  • Scenes: 6 (one per timepoint)
  • Characters: 4 crew members
  • Dialog turns: 78 total
  • Temporal mode: PORTAL (backward from 2031 failure to 2026 origin)
  • Cost: $0.18

Compression

Fountain exports support gzip and bz2 compression:
exporter = ExportFormatFactory.create("fountain", compression="gzip")
exporter.export(script_data, "screenplay.fountain")  # Creates screenplay.fountain.gz

Screenplay Software

Fountain files open in:

Additional Export Formats

Timepoint Pro also exports:
  • PDF: Industry-standard screenplay PDFs with Courier 12pt
  • Storyboard JSON: Structured JSON for programmatic access
  • Markdown: Human-readable narrative format
# Export as PDF
exporter = ExportFormatFactory.create("pdf")
exporter.export(script_data, "screenplay.pdf")

# Export as storyboard JSON
exporter = ExportFormatFactory.create("storyboard")
exporter.export(script_data, "storyboard.json")

Fountain Specification

Full spec at fountain.io/syntax Key features:
  • Plain text (version control friendly)
  • No proprietary format
  • Widely supported
  • Human readable and writable

See Also

Build docs developers (and LLMs) love