Skip to content

A recorded AI authoring run

Prompt. Read the Dart. Edit. Watch.

These prompts went through Fluvie’s ordinary generate, edit and review commands using gemini / gemini-2.5-flash. Every video links to its source and verified render evidence.

The fixture tells a fictional cat story using synthetic shapes and tones. Preservation, sampled repeatability and encoded output were checked. Creative quality still needs human review.

Download the recorded results Download the verified project and assets

Create from assets

Create a gentle 4-second video about fictional cat Milo playing with a red ball. Use assets/ball.png and assets/play.mp4 and assets/music.wav. The image and clip are synthetic red geometric fixtures, not photos of a cat. Use a 160 by 160 canvas at 30 fps, two readable scenes and a short title in 18px text. Use only these asset keys. Use a size object with width 160 and height 160. Keep the result four seconds long.

Recorded workflow: 80.1 seconds · encoded output verified · selected frames repeatable.

The generated Dart
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

Video build() {
  return Video(
    size: VideoSize(160, 160),
    audio: [Audio.music('assets/music.wav', volume: 0.4, fadeIn: 500.ms, fadeOut: 500.ms)],
    scenes: [
      Scene(
        duration: 1.5.seconds,
        background: Background.gradient(
          [Color(0xFF1A1A1A), Color(0xFF000000)],
          begin: Alignment.topCenter,
          end: Alignment.bottomCenter,
        ),
        children: [
          ElementId(
            id: 'title_text',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5),
              child: Text(
                'Milo and the Red Ball',
                style: TextStyle(
                  color: Color(0xFFFFFFFF),
                  fontSize: 18,
                  fontWeight: FontWeight.bold,
                ),
              ).animate([Animation.fadeIn(duration: 0.8.seconds, delay: 0.3.seconds)]),
            ),
          ),
        ],
      ),
      Scene(
        duration: 2.5.seconds,
        background: Background.color(Color(0xFF1A1A1A)),
        children: [
          ElementId(
            id: 'milo_play_clip',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5, width: 0.9, height: 0.9),
              child: Clip.asset(
                'assets/play.mp4',
                fit: BoxFit.contain,
                audio: ClipAudio.muted(),
              ).animate([Animation.fadeIn(duration: 0.5.seconds)]),
            ),
          ),
          ElementId(
            id: 'red_ball_image',
            child: Placed(
              placement: Placement(x: 0.6, y: 0.6, width: 0.2, height: 0.2),
              child: Image.asset('assets/ball.png').animate([
                Animation.pop(duration: 0.4.seconds, delay: 0.2.seconds),
                Animation.drift(delay: 0.6.seconds),
              ]),
            ),
          ),
        ],
      ),
    ],
  );
}
Text and audio review

Laid-out Flutter paragraphs at selected frames. Reading time uses the declared timing window. Custom painters, rasterized text and actual glyph font substitution are not inspected.

Applicable measurements completed.

No findings in the sampled text and measured audio. Creative quality needs human review.

Replay this source from the project bundle
fluvie bundle unpack project.fluvie.zip --dir replay
cd replay/project
flutter pub get --enforce-lockfile
fluvie render lib/benchmark_create_hmyag0afal1b083zm.dart

Change the pacing

Make this video exactly six seconds long by lengthening its scenes. Keep its assets and canvas unchanged. Preserve the entry function and all existing custom code.

Recorded workflow: 52.8 seconds · encoded output verified · selected frames repeatable.

Before: the original Dart
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

Video build() {
  return Video(
    size: VideoSize(160, 160),
    audio: [Audio.music('assets/music.wav', volume: 0.4, fadeIn: 500.ms, fadeOut: 500.ms)],
    scenes: [
      Scene(
        duration: 1.5.seconds,
        background: Background.gradient(
          [Color(0xFF1A1A1A), Color(0xFF000000)],
          begin: Alignment.topCenter,
          end: Alignment.bottomCenter,
        ),
        children: [
          ElementId(
            id: 'title_text',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5),
              child: Text(
                'Milo and the Red Ball',
                style: TextStyle(
                  color: Color(0xFFFFFFFF),
                  fontSize: 18,
                  fontWeight: FontWeight.bold,
                ),
              ).animate([Animation.fadeIn(duration: 0.8.seconds, delay: 0.3.seconds)]),
            ),
          ),
        ],
      ),
      Scene(
        duration: 2.5.seconds,
        background: Background.color(Color(0xFF1A1A1A)),
        children: [
          ElementId(
            id: 'milo_play_clip',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5, width: 0.9, height: 0.9),
              child: Clip.asset(
                'assets/play.mp4',
                fit: BoxFit.contain,
                audio: ClipAudio.muted(),
              ).animate([Animation.fadeIn(duration: 0.5.seconds)]),
            ),
          ),
          ElementId(
            id: 'red_ball_image',
            child: Placed(
              placement: Placement(x: 0.6, y: 0.6, width: 0.2, height: 0.2),
              child: Image.asset('assets/ball.png').animate([
                Animation.pop(duration: 0.4.seconds, delay: 0.2.seconds),
                Animation.drift(delay: 0.6.seconds),
              ]),
            ),
          ),
        ],
      ),
    ],
  );
}
Download original source
After: the edited Dart
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

Video build() {
  return Video(
    size: VideoSize(160, 160),
    audio: [Audio.music('assets/music.wav', volume: 0.4, fadeIn: 500.ms, fadeOut: 500.ms)],
    scenes: [
      Scene(
        duration: 2.5.seconds,
        background: Background.gradient(
          [Color(0xFF1A1A1A), Color(0xFF000000)],
          begin: Alignment.topCenter,
          end: Alignment.bottomCenter,
        ),
        children: [
          ElementId(
            id: 'title_text',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5),
              child: Text(
                'Milo and the Red Ball',
                style: TextStyle(
                  color: Color(0xFFFFFFFF),
                  fontSize: 18,
                  fontWeight: FontWeight.bold,
                ),
              ).animate([Animation.fadeIn(duration: 0.8.seconds, delay: 0.3.seconds)]),
            ),
          ),
        ],
      ),
      Scene(
        duration: 3.5.seconds,
        background: Background.color(Color(0xFF1A1A1A)),
        children: [
          ElementId(
            id: 'milo_play_clip',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5, width: 0.9, height: 0.9),
              child: Clip.asset(
                'assets/play.mp4',
                fit: BoxFit.contain,
                audio: ClipAudio.muted(),
              ).animate([Animation.fadeIn(duration: 0.5.seconds)]),
            ),
          ),
          ElementId(
            id: 'red_ball_image',
            child: Placed(
              placement: Placement(x: 0.6, y: 0.6, width: 0.2, height: 0.2),
              child: Image.asset('assets/ball.png').animate([
                Animation.pop(duration: 0.4.seconds, delay: 0.2.seconds),
                Animation.drift(delay: 0.6.seconds),
              ]),
            ),
          ),
        ],
      ),
    ],
  );
}
Text and audio review

Laid-out Flutter paragraphs at selected frames. Reading time uses the declared timing window. Custom painters, rasterized text and actual glyph font substitution are not inspected.

Applicable measurements completed.

No findings in the sampled text and measured audio. Creative quality needs human review.

Replay this source from the project bundle
fluvie bundle unpack project.fluvie.zip --dir replay
cd replay/project
flutter pub get --enforce-lockfile
fluvie render lib/benchmark_pacing_hmyahbyttw172j36j.dart

Preserve handwritten Flutter

Change only the title text Milo plays to Milo rests. Preserve the complete BenchmarkBadge class byte-for-byte and keep its use in the scene.

Recorded workflow: 47.4 seconds · encoded output verified · selected frames repeatable.

Before: the original Dart
// #docregion video
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

/// Small authored fixture for measuring edits that preserve custom Flutter code.
Video build() => Video(
  size: const VideoSize(160, 160),
  scenes: [
    Scene(duration: 3.seconds, background: Background.color(Colors.indigo),
      children: [const Text('Milo plays', style: TextStyle(fontSize: 20)), const BenchmarkBadge()]),
  ],
);
// #enddocregion video

// #docregion custom-widget
/// Handwritten Flutter widget retained byte-for-byte by the benchmark edit.
final class BenchmarkBadge extends StatelessWidget {
  /// Creates the fixture badge.
  const BenchmarkBadge({super.key});

  @override
  Widget build(BuildContext context) => const Padding(
    padding: EdgeInsets.all(8),
    child: Text('Handwritten Flutter', style: TextStyle(fontSize: 12, color: Colors.amber)),
  );
}
// #enddocregion custom-widget
Download original source
After: the edited Dart
// #docregion video
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

/// Small authored fixture for measuring edits that preserve custom Flutter code.
Video build() => Video(
  size: const VideoSize(160, 160),
  scenes: [
    Scene(duration: 3.seconds, background: Background.color(Colors.indigo),
      children: [const Text('Milo rests', style: TextStyle(fontSize: 20)), const BenchmarkBadge()]),
  ],
);
// #enddocregion video

// #docregion custom-widget
/// Handwritten Flutter widget retained byte-for-byte by the benchmark edit.
final class BenchmarkBadge extends StatelessWidget {
  /// Creates the fixture badge.
  const BenchmarkBadge({super.key});

  @override
  Widget build(BuildContext context) => const Padding(
    padding: EdgeInsets.all(8),
    child: Text('Handwritten Flutter', style: TextStyle(fontSize: 12, color: Colors.amber)),
  );
}
// #enddocregion custom-widget
Text and audio review

Laid-out Flutter paragraphs at selected frames. Reading time uses the declared timing window. Custom painters, rasterized text and actual glyph font substitution are not inspected.

Applicable measurements completed.

No findings in the sampled text and measured audio. Creative quality needs human review.

Replay this source from the project bundle
fluvie bundle unpack project.fluvie.zip --dir replay
cd replay/project
flutter pub get --enforce-lockfile
fluvie render lib/benchmark_custom_widget_hmyai7fcblt0t13j.dart

Add captions

Add Captions.fromSrt('assets/captions.srt') as this video's captions. Preserve existing scenes, assets and size. Use a custom CaptionStyle with TextStyle(fontSize: 14, color: Colors.white), a translucent dark background, and white highlight so captions fit the 160 pixel canvas.

Recorded workflow: 52.0 seconds · encoded output verified · selected frames repeatable.

Before: the original Dart
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

Video build() {
  return Video(
    size: VideoSize(160, 160),
    audio: [Audio.music('assets/music.wav', volume: 0.4, fadeIn: 500.ms, fadeOut: 500.ms)],
    scenes: [
      Scene(
        duration: 2.5.seconds,
        background: Background.gradient(
          [Color(0xFF1A1A1A), Color(0xFF000000)],
          begin: Alignment.topCenter,
          end: Alignment.bottomCenter,
        ),
        children: [
          ElementId(
            id: 'title_text',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5),
              child: Text(
                'Milo and the Red Ball',
                style: TextStyle(
                  color: Color(0xFFFFFFFF),
                  fontSize: 18,
                  fontWeight: FontWeight.bold,
                ),
              ).animate([Animation.fadeIn(duration: 0.8.seconds, delay: 0.3.seconds)]),
            ),
          ),
        ],
      ),
      Scene(
        duration: 3.5.seconds,
        background: Background.color(Color(0xFF1A1A1A)),
        children: [
          ElementId(
            id: 'milo_play_clip',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5, width: 0.9, height: 0.9),
              child: Clip.asset(
                'assets/play.mp4',
                fit: BoxFit.contain,
                audio: ClipAudio.muted(),
              ).animate([Animation.fadeIn(duration: 0.5.seconds)]),
            ),
          ),
          ElementId(
            id: 'red_ball_image',
            child: Placed(
              placement: Placement(x: 0.6, y: 0.6, width: 0.2, height: 0.2),
              child: Image.asset('assets/ball.png').animate([
                Animation.pop(duration: 0.4.seconds, delay: 0.2.seconds),
                Animation.drift(delay: 0.6.seconds),
              ]),
            ),
          ),
        ],
      ),
    ],
  );
}
Download original source
After: the edited Dart
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

const _captionStyle = CaptionStyle(
  textStyle: TextStyle(fontSize: 14, color: Colors.white),
  background: Color(0x80000000),
  highlight: Colors.white,
);

Video build() {
  return Video(
    size: VideoSize(160, 160),
    audio: [Audio.music('assets/music.wav', volume: 0.4, fadeIn: 500.ms, fadeOut: 500.ms)],
    captions: Captions.fromSrt('assets/captions.srt', style: _captionStyle),
    scenes: [
      Scene(
        duration: 2.5.seconds,
        background: Background.gradient(
          [Color(0xFF1A1A1A), Color(0xFF000000)],
          begin: Alignment.topCenter,
          end: Alignment.bottomCenter,
        ),
        children: [
          ElementId(
            id: 'title_text',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5),
              child: Text(
                'Milo and the Red Ball',
                style: TextStyle(
                  color: Color(0xFFFFFFFF),
                  fontSize: 18,
                  fontWeight: FontWeight.bold,
                ),
              ).animate([Animation.fadeIn(duration: 0.8.seconds, delay: 0.3.seconds)]),
            ),
          ),
        ],
      ),
      Scene(
        duration: 3.5.seconds,
        background: Background.color(Color(0xFF1A1A1A)),
        children: [
          ElementId(
            id: 'milo_play_clip',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5, width: 0.9, height: 0.9),
              child: Clip.asset(
                'assets/play.mp4',
                fit: BoxFit.contain,
                audio: ClipAudio.muted(),
              ).animate([Animation.fadeIn(duration: 0.5.seconds)]),
            ),
          ),
          ElementId(
            id: 'red_ball_image',
            child: Placed(
              placement: Placement(x: 0.6, y: 0.6, width: 0.2, height: 0.2),
              child: Image.asset('assets/ball.png').animate([
                Animation.pop(duration: 0.4.seconds, delay: 0.2.seconds),
                Animation.drift(delay: 0.6.seconds),
              ]),
            ),
          ),
        ],
      ),
    ],
  );
}
Text and audio review

Laid-out Flutter paragraphs at selected frames. Reading time uses the declared timing window. Custom painters, rasterized text and actual glyph font substitution are not inspected.

Applicable measurements completed.

No findings in the sampled text and measured audio. Creative quality needs human review.

Replay this source from the project bundle
fluvie bundle unpack project.fluvie.zip --dir replay
cd replay/project
flutter pub get --enforce-lockfile
fluvie render lib/benchmark_captions_hmyaiznt7b1wggy0z.dart

Export three formats

Export the same authored composition for square, reels and landscape. Keep its source identical.

Recorded workflow: 103.7 seconds · encoded output verified · selected frames repeatable.

Before: the original Dart
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

const _captionStyle = CaptionStyle(
  textStyle: TextStyle(fontSize: 14, color: Colors.white),
  background: Color(0x80000000),
  highlight: Colors.white,
);

Video build() {
  return Video(
    size: VideoSize(160, 160),
    audio: [Audio.music('assets/music.wav', volume: 0.4, fadeIn: 500.ms, fadeOut: 500.ms)],
    captions: Captions.fromSrt('assets/captions.srt', style: _captionStyle),
    scenes: [
      Scene(
        duration: 2.5.seconds,
        background: Background.gradient(
          [Color(0xFF1A1A1A), Color(0xFF000000)],
          begin: Alignment.topCenter,
          end: Alignment.bottomCenter,
        ),
        children: [
          ElementId(
            id: 'title_text',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5),
              child: Text(
                'Milo and the Red Ball',
                style: TextStyle(
                  color: Color(0xFFFFFFFF),
                  fontSize: 18,
                  fontWeight: FontWeight.bold,
                ),
              ).animate([Animation.fadeIn(duration: 0.8.seconds, delay: 0.3.seconds)]),
            ),
          ),
        ],
      ),
      Scene(
        duration: 3.5.seconds,
        background: Background.color(Color(0xFF1A1A1A)),
        children: [
          ElementId(
            id: 'milo_play_clip',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5, width: 0.9, height: 0.9),
              child: Clip.asset(
                'assets/play.mp4',
                fit: BoxFit.contain,
                audio: ClipAudio.muted(),
              ).animate([Animation.fadeIn(duration: 0.5.seconds)]),
            ),
          ),
          ElementId(
            id: 'red_ball_image',
            child: Placed(
              placement: Placement(x: 0.6, y: 0.6, width: 0.2, height: 0.2),
              child: Image.asset('assets/ball.png').animate([
                Animation.pop(duration: 0.4.seconds, delay: 0.2.seconds),
                Animation.drift(delay: 0.6.seconds),
              ]),
            ),
          ),
        ],
      ),
    ],
  );
}
Download original source
After: the edited Dart
import 'package:flutter/material.dart' hide Animation, Clip, Image, Tween;
import 'package:fluvie/fluvie.dart';

const _captionStyle = CaptionStyle(
  textStyle: TextStyle(fontSize: 14, color: Colors.white),
  background: Color(0x80000000),
  highlight: Colors.white,
);

Video build() {
  return Video(
    size: VideoSize(160, 160),
    audio: [Audio.music('assets/music.wav', volume: 0.4, fadeIn: 500.ms, fadeOut: 500.ms)],
    captions: Captions.fromSrt('assets/captions.srt', style: _captionStyle),
    scenes: [
      Scene(
        duration: 2.5.seconds,
        background: Background.gradient(
          [Color(0xFF1A1A1A), Color(0xFF000000)],
          begin: Alignment.topCenter,
          end: Alignment.bottomCenter,
        ),
        children: [
          ElementId(
            id: 'title_text',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5),
              child: Text(
                'Milo and the Red Ball',
                style: TextStyle(
                  color: Color(0xFFFFFFFF),
                  fontSize: 18,
                  fontWeight: FontWeight.bold,
                ),
              ).animate([Animation.fadeIn(duration: 0.8.seconds, delay: 0.3.seconds)]),
            ),
          ),
        ],
      ),
      Scene(
        duration: 3.5.seconds,
        background: Background.color(Color(0xFF1A1A1A)),
        children: [
          ElementId(
            id: 'milo_play_clip',
            child: Placed(
              placement: Placement(x: 0.5, y: 0.5, width: 0.9, height: 0.9),
              child: Clip.asset(
                'assets/play.mp4',
                fit: BoxFit.contain,
                audio: ClipAudio.muted(),
              ).animate([Animation.fadeIn(duration: 0.5.seconds)]),
            ),
          ),
          ElementId(
            id: 'red_ball_image',
            child: Placed(
              placement: Placement(x: 0.6, y: 0.6, width: 0.2, height: 0.2),
              child: Image.asset('assets/ball.png').animate([
                Animation.pop(duration: 0.4.seconds, delay: 0.2.seconds),
                Animation.drift(delay: 0.6.seconds),
              ]),
            ),
          ),
        ],
      ),
    ],
  );
}
Text and audio review

Laid-out Flutter paragraphs at selected frames. Reading time uses the declared timing window. Custom painters, rasterized text and actual glyph font substitution are not inspected.

Applicable measurements completed.

No findings in the sampled text and measured audio. Creative quality needs human review.

Replay this source from the project bundle
fluvie bundle unpack project.fluvie.zip --dir replay
cd replay/project
flutter pub get --enforce-lockfile
fluvie render lib/benchmark_formats_hmyajumhsa1gzt2j6.dart