All Projects → pinnouse → ani-ss

pinnouse / ani-ss

Licence: MIT license
Anime4K using Web Assembly

Programming Languages

rust
11053 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
GLSL
2045 projects

Projects that are alternatives of or similar to ani-ss

Anime4k
A High-Quality Real Time Upscaler for Anime Video
Stars: ✭ 14,083 (+63913.64%)
Mutual labels:  anime, upscaling, anime4k, anime-upscaling
Anime4K-rs
An attempt to write Anime4K in Rust
Stars: ✭ 104 (+372.73%)
Mutual labels:  anime, upscaling, anime4k
pyanime4k
An easy way to use anime4k in python
Stars: ✭ 80 (+263.64%)
Mutual labels:  anime, upscaling, anime4k
Waifu2x Extension Gui
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN, and ACNet.
Stars: ✭ 5,463 (+24731.82%)
Mutual labels:  anime, upscaling, anime4k
TD-Anime4K
Implementation of Anime4K in TouchDesigner.
Stars: ✭ 32 (+45.45%)
Mutual labels:  anime, upscaling
Video2x
A lossless video/GIF/image upscaler achieved with waifu2x, Anime4K, SRMD and RealSR. Started in Hack the Valley 2, 2018.
Stars: ✭ 3,760 (+16990.91%)
Mutual labels:  upscaling, anime4k
YetAnotherVideoPlayer
Yet Another Video Player for Andoid
Stars: ✭ 62 (+181.82%)
Mutual labels:  anime, anime4k
AI-Lossless-Zoomer
AI无损放大工具
Stars: ✭ 940 (+4172.73%)
Mutual labels:  anime, anime4k
MalScraper
Scrape everything you can from MyAnimeList.net
Stars: ✭ 132 (+500%)
Mutual labels:  anime
vueman.ga
Delightful reading and tracking of your mangas.
Stars: ✭ 32 (+45.45%)
Mutual labels:  anime
NovelLibrary
One stop for reading all novels
Stars: ✭ 93 (+322.73%)
Mutual labels:  anime
anime-cli
A CLI for streaming, downloading anime shows. The shows data is indexed through GogoAnime.
Stars: ✭ 31 (+40.91%)
Mutual labels:  anime
Manime
🍱 An anime app, based on single activity and MVVM architecture.
Stars: ✭ 24 (+9.09%)
Mutual labels:  anime
jojo-cards
Card game based on Jojo's Bizarre Adventure (ジョジョの奇妙な冒険)
Stars: ✭ 112 (+409.09%)
Mutual labels:  anime
scrobbly
↩️ Scrobble your animes to Anilist, Kitsu!
Stars: ✭ 23 (+4.55%)
Mutual labels:  anime
anitomy-js
Native Node.js wrapper for Anitomy
Stars: ✭ 21 (-4.55%)
Mutual labels:  anime
flitch
🍂 Android Anime Streaming App.
Stars: ✭ 80 (+263.64%)
Mutual labels:  anime
adl
🍿 anime-downloader + trackma wrapper
Stars: ✭ 91 (+313.64%)
Mutual labels:  anime
worker
⚒ Web crawler that analyzes and dissects subtitles into database entries
Stars: ✭ 16 (-27.27%)
Mutual labels:  anime
Shokofin
Repository for Shokofin, a plugin that brings Shoko to Jellyfin.
Stars: ✭ 44 (+100%)
Mutual labels:  anime

Ani-SS

Anime4k 3.x applied in web assembly.

Big thanks for the shaders and hard work from: https://github.com/bloc97/Anime4K

What Is This?

Anime4K is a set of GLSL shaders meant to solve the issue of upscaling textures specifically and artistically in this use case, japanese animation. The shaders intelligently push colour and luminance to clean artifacts and noise from linear scaling.

The target for the original Anime4K shaders is mpv, but most people stream anime on the web these days, lucky these shaders compile* on and target modern browsers. JavaScript is ok, but parsing text and wrapping them neatly in a package as well as doing so quickly and efficiently would be a great task for WebAssembly to take on instead. This is where Ani-SS fits in - arbitrary mpv shaders would theoretically apply too (take a look at the bugs/inconsistencies section before submitting issues).

Usage wasm

The pkg directory available after building should be where all your required files reside. After importing (like as follows in the www/js/init.js file):

import { AniSS } from '../../pkg';
...

To use Ani-SS, you must provide a WebGl2RenderingContext which can be obtained from a <canvas> element.

index.html

<canvas id="canv"></canvas>

<your_file>.js

const canvas = document.getElementById('canv');
const gl = canvas.getContext('webgl2');

Now ready to use:

const aniSS = new AniSS(gl);
... // Obtain some <img>, <video> or <canvas> element to be the source
// After data is loaded
const videoElement = document.getElementById("vid"); // Some HtmlVideoElement <video id="vid"> or could be <img>, <canvas>
aniSS.setSource(videoElement);

function render() {
    aniSS.render();
    requestAnimationFrame(render);
}
requestAnimationFrame(render);

To add a shader/program:

aniSS.addProgram('...') // Pass the program as a string, replacing '...' with that string

Known Bugs/Inconsistencies

  • Not sure if implementation of hooks or shaders themselves, but Anime4K shaders seem to lighten/increase luma of the render
  • *GLSL: szexpr with WIDTH and HEIGHT are disregarded and the last parsable float is stored as the scale (looking to turn it into a multiplier/scale field)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].