Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

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

13 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages