Skip to main content

NaraMotion 🎨🚀

Python Version License JIT Accelerated

Author & Creator: Islam Arifi
Official PyPI Package: naramotion (v0.22.0)

NaraMotion is an ultra-fast 2D/2.5D vector graphics, GIS, motion graphics, and cinematic video engine for Python powered by Blend2D (embedded JIT compiler and SIMD hardware acceleration).


🔑 License Activation & Evaluation Mode

NaraMotion is distributed under a Proprietary Commercial License with an Evaluation Mode. Unlicensed evaluation renders include a subtle semi-transparent "Auras" watermark in the center.

To Activate Full Commercial Version:

Call naramotion.set_license() at the beginning of your program with your commercial key:

import naramotion

# Activate official license (removes all evaluation watermarks)
naramotion.set_license("YOUR_COMMERCIAL_KEY")

Or set the environment variable:

export NARAMOTION_LICENSE_KEY="YOUR_COMMERCIAL_KEY"  # Linux/macOS
set NARAMOTION_LICENSE_KEY="YOUR_COMMERCIAL_KEY"     # Windows

📦 Official Installation

1. From PyPI:

pip install naramotion

2. Optional Speed & Ecosystem Extensions:

pip install "naramotion[numpy,pil]"     # For Zero-Copy NumPy & Pillow integration
pip install "naramotion[all]"           # For GeoPandas, Shapely & full testing

✅ Quick Verification:

import naramotion
print(f"✨ NaraMotion Version: {naramotion.__version__} by {naramotion.__author__}")

🚀 Quickstart

1. Basic Drawing & Context Manager

from naramotion import Image, Context, Format

# Create 800x600 surface in PRGB32 format
img = Image(800, 600, Format.PRGB32)

with Context(img) as ctx:
    # 1. Fill dark cyberpunk canvas background
    ctx.fill_all("#090D16")
    
    # 2. Draw soft glowing circle
    ctx.fill_circle(400, 300, 140, "#38BDF8")
    
    # 3. Add stylish thick border with rounded corners
    ctx.stroke_width = 8.0
    ctx.stroke_round_rect(100, 100, 600, 400, 24.0, style="#F43F5E")

# Save directly to disk
img.save("quickstart_naramotion.png")

2. Cinematic Post-Processing FX & Post-Pipeline

from naramotion import Image, Context, fx

img = Image(1280, 720)
with Context(img) as ctx:
    ctx.fill_all("#060810")
    ctx.fill_circle(640, 360, 180, "#38BDF8")

# Apply chained visual FX (Bloom + Vignette + Film Grain)
fx.FXPipeline().bloom(threshold=0.5, intensity=1.5, radius=12.0).vignette(0.5).film_grain(0.05).apply(img)
img.save("cinematic_naramotion.png")

3. Kinetic Perspective Camera (2.5D 4K Video Flythrough)

from naramotion import Image, Context, Format, CompOp
from naramotion.motion import PerspectiveCamera
from naramotion.video import VideoWriter

WIDTH, HEIGHT = 1920, 1080
img = Image(WIDTH, HEIGHT, Format.PRGB32)
cam = PerspectiveCamera(width=WIDTH, height=HEIGHT, pitch=65.0, distance=900.0)

with VideoWriter("flythrough.mp4", width=WIDTH, height=HEIGHT, fps=60) as vw:
    for frame in range(120):
        cam.target_y = (frame / 119.0) * 1200.0
        with Context(img) as ctx:
            ctx.fill_all("#050811")
            cam.render_fog(ctx, fog_color="#050811", horizon_y_ratio=0.35)
        vw.write_frame(img)

📚 Complete API Documentation

For the complete 22-section master documentation and AI guidelines, see:

Metadata

Release files for naramotion 0.26.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for naramotion 0.26.0
File Size Uploaded
naramotion-0.26.0.tar.gz 20.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for naramotion 0.26.0
File Interpreter ABI Platform
naramotion-0.26.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.4 MB

Release files / naramotion-0.26.0.tar.gz

Download URL naramotion-0.26.0.tar.gz
Size 20.5 MB
Tags Source
SHA-256 checksum
How to use checksums
06aaa14196b64802bdd7ac66170b579243cc45995fa366152eefeb06ca7d4d8c
BLAKE2b-256 checksum
How to use checksums
abef24d92a26449bb6e76dd1fc496b63dd2629a545255656916c4ac87ae269b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.0

Release files / naramotion-0.26.0-py3-none-any.whl

Download URL naramotion-0.26.0-py3-none-any.whl
Size 10.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
966cc73201ed4268024e8b87f70f728d089f76ea183d2f065f2004a3a74dfd00
BLAKE2b-256 checksum
How to use checksums
5b29264c40a97aefc432579ff1ae7078db6e0473f1ba2417a8fdf0d8daee0903
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.0

Release history Release notifications | RSS feed

This release

0.26.0 This release

2 release files

0.25.0

1 release file

0.24.0

2 release files

0.23.0

1 release file

0.22.2

1 release file

0.22.1

1 release file

0.22.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page