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.25.1

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.25.1
File Size Uploaded
naramotion-0.25.1.tar.gz 20.5 MB Details

Built distribution (wheel)

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

Total release size: 31.3 MB

Release files / naramotion-0.25.1.tar.gz

Download URL naramotion-0.25.1.tar.gz
Size 20.5 MB
Tags Source
SHA-256 checksum
How to use checksums
c40b41ee565148d97c66683884b227dc5fc2a0c195c464ce6a38a353ef577e91
BLAKE2b-256 checksum
How to use checksums
81ae00dd946f1b7b9ae18b05b8727d97844d375c98d8a92503d45fe7311e5cdd
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.25.1-py3-none-any.whl

Download URL naramotion-0.25.1-py3-none-any.whl
Size 10.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
666f39d831613f49500d1d389da86b8961729fb0521cc4be9de3364bcdeae49b
BLAKE2b-256 checksum
How to use checksums
2f29f67410bc491c149bbe6f78125c4f8e1ee8cc08eef05cb0d192c16068cad7
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.25.1 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