Skip to content

oisee/vivid-vibes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vivid Vibes

Probably the first ever demo for SAP ABAP

Real-time demoscene effects running in SAP ABAP

Demo Video

Click the image above to watch the demo in action


What is this?

Vivid Vibes is a demoscene engine written entirely in ABAP. It renders classic demo effects server-side and streams them to the browser via WebSockets (ABAP Push Channel). The browser renders vector primitives in real-time, synchronized to music.

Architecture

┌─────────────────────┐         ┌─────────────────────┐
│       ABAP          │         │      Browser        │
│   "Scene Engine"    │         │  "Video Processor"  │
├─────────────────────┤  JSON   ├─────────────────────┤
│ - Effect logic      │ ─────►  │ - Canvas 2D         │
│ - 3D math           │ WebSocket│ - WebGL shaders    │
│ - Scene transitions │         │ - Audio sync        │
│ - Timeline/BPM sync │         │ - CRT post-FX       │
└─────────────────────┘         └─────────────────────┘
     Calculates                      Renders
     what to draw                    the frames

ABAP does all the heavy lifting: 3D transformations, effect calculations, scene orchestration, and beat synchronization. It outputs draw commands (lines, circles, polygons, text) as JSON.

JavaScript (Canvas/WebGL) acts as a "video processor" - it receives the primitives and renders them to screen. It also handles audio playback, post-processing effects (CRT scanlines, glow), and WebGL shaders for GPU-accelerated effects.


Effects

Preview Effect Class
Plasma ZCL_O4D_PLASMA
Copper Bars ZCL_O4D_COPPERBARS
Rotozoom ZCL_O4D_ROTOZOOM
Amiga Ball ZCL_O4D_AMIGABALL
Twister ZCL_O4D_TWISTER
Metaballs ZCL_O4D_METABALLS
Joy Division ZCL_O4D_JOYDIVISION
Mountains ZCL_O4D_MOUNTAINS
Voxel Landscape ZCL_O4D_VOXEL_LANDSCAPE
Tesseract (4D) ZCL_O4D_TESSERACT
24-Cell Polytope ZCL_O4D_CELL24
120-Cell Polytope ZCL_O4D_CELL120
Torus ZCL_O4D_TORUS
Quaternion Julia ZCL_O4D_QUATJULIA
Julia Morph ZCL_O4D_JULIA_MORPH
Sierpinski ZCL_O4D_SIERPINSKI
Neon City ZCL_O4D_NEONCITY
Constellation ZCL_O4D_CONSTELLATION
Ignition ZCL_O4D_IGNITION
Glitch ZCL_O4D_GLITCH

...and more effects!


Installation

1. Install the package

Clone and import using abapGit:

https://github.com/oisee/vivid-vibes

2. Activate the HTTP Handler

  1. Go to transaction SICF
  2. Create/activate service node: /sap/bc/zo4d_demo
  3. Assign handler class: ZCL_O4D_HTTP_HANDLER

3. Activate the APC Handler

  1. Go to transaction SAPC (or SE80 -> Create APC Application)
  2. Create and activate the ABAP Push Channel service
  3. Assign handler class: ZCL_O4D_APC_HANDLER

Running the Demo

Open your browser and navigate to:

http://<your-sap-host>:<port>/sap/bc/zo4d_demo?player=megademo

Example:

http://vhcala4hci:50000/sap/bc/zo4d_demo?player=megademo

Architecture

Core Classes

Class Description
ZIF_O4D_EFFECT Effect interface with render context, timing, primitives
ZCL_O4D_DEMO Scene orchestrator with transitions
ZCL_O4D_COMPOSER Multi-scene timeline management
ZCL_O4D_HTTP_HANDLER Serves the HTML5 player
ZCL_O4D_APC_HANDLER WebSocket handler for real-time streaming

Rendering

  • Output: JSON primitives (lines, circles, polygons, text)
  • Resolution: 640x400 scalable vectors
  • Frame rate: ~20-60 FPS (configurable via fpt parameter)
  • Timing: Beat-synced at 76 BPM (configurable)

Related Projects

Vibing Steampunk

A complete demo production built with this framework:

github.com/oisee/vibing-steampunk


Credits

Code: OISEE + Claude // 2025

Music:

  • EA Rulez! by Oisee (AY-8910 1999 / rmx 2025)
  • Ole Lukøjle by Oisee (AY-8910 2001 / rmx 2025)

Demoscene meets Enterprise!


License

MIT

About

Old-school ABAP Demo

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •