Skip to main content

TinyWorld

TinyWorld is a Python library + CLI that generates short, dynamic, colorful videos with:

  • Text & Image shapes
  • Transitions (fade in/out, move, rotate, scale)
  • TTS Audio (powered by Google gTTS)
  • Scene-based timeline
  • Automatic final MP4 creation

Installation

pip install tinyworld

Usage (CLI)

  1. Create a JSON script (e.g. example.json) describing your config, tts text, scenes, shapes, transitions.
  2. Run:
tinyworld example.json

This will produce frames, generate TTS audio if present, and create a final MP4 (the default is tinyworld_output.mp4 or whatever you set in config).

Demo

{
  "config": {
    "width": 640,
    "height": 360,
    "fps": 30,
    "bg_color": "white",
    "font_path": null,
    "font_size": 32,
    "output_file": "my_dynamic_video.mp4",
    "tts_lang": "en"
  },
  "tts": "Welcome to the tiny world! Here, shapes and images come to life with simple transitions.",
  "scenes": [
    {
      "duration": 5,
      "bg_color": "white",
      "shapes": [
        {
          "type": "text",
          "id": "intro_text",
          "text": "Hello, TinyWorld!",
          "x": 320,
          "y": 180
        }
      ],
      "transitions": [
        {
          "name": "FadeIn",
          "shape_id": "intro_text",
          "start_time": 0,
          "end_time": 2
        }
      ]
    },
    {
      "duration": 4,
      "bg_color": "white",
      "shapes": [
        {
          "type": "image",
          "id": "logo_img",
          "image_path": "logo.png",
          "x": 200,
          "y": 180
        }
      ],
      "transitions": [
        {
          "name": "Move",
          "shape_id": "logo_img",
          "start_time": 0,
          "end_time": 3,
          "start_pos": [200, 180],
          "end_pos": [440, 180]
        },
        {
          "name": "Rotate",
          "shape_id": "logo_img",
          "start_time": 1,
          "end_time": 4,
          "start_angle": 0,
          "end_angle": 720
        }
      ]
    }
  ]
}

Watch the demo video

Features

  • Scene-by-scene animation
  • Easy text or image shapes
  • Move, rotate, scale, fade in/out
  • TTS to add narration over the video
  • JSON-based script means no coding needed
  • Uses MoviePy to merge frames & audio

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tinyworld-0.1.0.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tinyworld-0.1.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file tinyworld-0.1.0.tar.gz.

File metadata

  • Download URL: tinyworld-0.1.0.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for tinyworld-0.1.0.tar.gz
Algorithm Hash digest
SHA256 19059b725ec08f1a06dcc3e8754bc46dbaa360e0710684ef993936432473e95a
MD5 9c1d6e03d73dadea6eb54edbdfe8a3c1
BLAKE2b-256 37f49a76666cb2b0738b168d2056bf9aad371016e65ebaccc3b16ecd29b79813

See more details on using hashes here.

File details

Details for the file tinyworld-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tinyworld-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for tinyworld-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d7380a687dc77f9ca16ba251afc8eab6f4a3074a22897619b5ba7a0d4e3ecc53
MD5 32c35c49e1abdd073adfed68a7ee9e94
BLAKE2b-256 826e2e569392d253d7b079d477fc71274452832201e260f24c37bf0d6d73eabb

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page