[–] ▶ №15385321[Quote]
text fail
▶ №15385326[Quote]
APPROVE THIS NOW JANJANS
▶ №15385369[Quote]
media pending approval
▶ №15385381[Quote]>>15385408
>example 3 (with code)
function animate(p5, props) {
const {
mainImage,
size,
currentFrame,
totalFrames,
bgColor,
featureValue
} = props;
const biggestImageDimension = mainImage.width > mainImage.height ? mainImage.width : mainImage.height;
const t = currentFrame / totalFrames;
const glitchIntensity = featureValue / 100;
p5.background(bgColor);
p5.push();
// Crazy rotation based on frame and feature value
p5.rotateX(Math.sin(t * Math.PI * 2) * glitchIntensity * 2);
p5.rotateY(Math.cos(t * Math.PI * 2 + 0.5) * glitchIntensity * 2);
p5.rotateZ(Math.sin(t * Math.PI * 4) * glitchIntensity * 1.5);
// Scale pulsing and glitching
const baseScale = (size / biggestImageDimension) * 0.63;
const scaleGlitch = 1 + Math.sin(t * Math.PI * 8) * 0.3 * glitchIntensity;
p5.scale(baseScale * scaleGlitch);
// Translate with crazy offsets
p5.translate(
Math.sin(t * Math.PI * 6) * 50 * glitchIntensity,
Math.cos(t * Math.PI * 7) * 50 * glitchIntensity,
Math.sin(t * Math.PI * 5) * 30 * glitchIntensity
);
// Random color glitches
const hueShift = (t * 360 + Math.sin(t * Math.PI * 12) * 180 * glitchIntensity) % 360;
p5.colorMode(p5.HSB);
p5.fill(hueShift, 200, 255);
p5.stroke(360 - hueShift, 255, 200);
p5.strokeWeight(3 * glitchIntensity);
// Draw multiple distorted shapes
p5.texture(mainImage);
const shapeType = Math.floor(t * 8 + Math.sin(t * Math.PI * 3) * 2) % 3;
if (shapeType === 0) {
p5.plane(mainImage.width, mainImage.height);
} else if (shapeType === 1) {
p5.sphere(Math.max(mainImage.width, mainImage.height) * 0.6);
} else {
p5.box(mainImage.width * 0.8, mainImage.height * 0.8, Math.sin(t * Math.PI * 2) * 200 + 100);
}
// Add extra glitch boxes
if (glitchIntensity > 0.3) {
p5.push();
p5.translate(Math.sin(t * Math.PI * 11) * 100, Math.cos(t * Math.PI * 13) * 100, 0);
p5.fill(hueShift + 120, 200, 255, 100);
p5.noStroke();
p5.box(100 + Math.sin(t * Math.PI * 15) * 80);
p5.pop();
}
p5.pop();
p5.colorMode(p5.RGB);
} and oreos
▶ №15385536[Quote]
also if you put "random" it does, well random. If that matters
▶ №15385573[Quote]
>>153855683dgifmaker sex will always be a gem
▶ №15387091[Quote]
go back up
▶ №15387125[Quote]
Uppie
▶ №15387441[Quote]
dog toes
▶ №15387469[Quote]
>>15387410uploaded to the 'ru
▶ №15387629[Quote]
>>15387614realistic depiction of a panic attack
▶ №15387675[Quote]>>15388059
>>15387662what is the prompt?
▶ №15387691[Quote]
>>15387686thanks
I hope someone 'chive this thread
I uploaded some more 4d gifs on my soybooru account named RAN_TRIGHTS_NOW and oreos
▶ №15387704[Quote]
>>15387692made me laugh award, how could you tell?
▶ №15387708[Quote]
>>15387697time is running out ahh gif
▶ №15387818[Quote]
Bumo
▶ №15387951[Quote]
avant garde soyjak revival
▶ №15388059[Quote]
>>15387675it was something along the lines of "randomly scale the image, rotate the image, and move the image, and have the image leave red cubes wherever it goes"
▶ №15388235[Quote]
Bumop
▶ №15388411[Quote]>>15388427
Chive this thread!
▶ №15388427[Quote]
>>15388411we won't be able to save them doe so it would be useless unless someone archives all the attachment links too
▶ №15388660[Quote]>>15388664>>15388676
spinning swastika
function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const spinAngle = (currentFrame / totalFrames) * Math.PI * 2;
const imageScale = (size / Math.max(mainImage.width, mainImage.height)) * 0.15;
const spacing = size * 0.12;
p5.push();
p5.rotateZ(spinAngle);
// Helper function to draw image at position
const drawImageAt = (x, y) => {
p5.push();
p5.translate(x, y, 0);
p5.scale(imageScale);
p5.texture(mainImage);
p5.plane(mainImage.width, mainImage.height);
p5.pop();
};
// Center image
drawImageAt(0, 0);
// Arm 1: Up (2 up, then 2 to the right)
drawImageAt(0, -spacing);
drawImageAt(0, -spacing * 2);
drawImageAt(spacing, -spacing * 2);
drawImageAt(spacing * 2, -spacing * 2);
// Arm 2: Right (2 right, then 2 down)
drawImageAt(spacing, 0);
drawImageAt(spacing * 2, 0);
drawImageAt(spacing * 2, spacing);
drawImageAt(spacing * 2, spacing * 2);
// Arm 3: Down (2 down, then 2 to the left)
drawImageAt(0, spacing);
drawImageAt(0, spacing * 2);
drawImageAt(-spacing, spacing * 2);
drawImageAt(-spacing * 2, spacing * 2);
// Arm 4: Left (2 left, then 2 up)
drawImageAt(-spacing, 0);
drawImageAt(-spacing * 2, 0);
drawImageAt(-spacing * 2, -spacing);
drawImageAt(-spacing * 2, -spacing * 2);
p5.pop();
}
▶ №15388664[Quote]
>>15388660other spinning swastika
function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const biggestImageDimension = Math.max(mainImage.width, mainImage.height);
const scale = (size / biggestImageDimension) * 0.15;
const spacing = biggestImageDimension * scale * 1.1;
// Rotation based on featureValue for speed control
const speedMultiplier = 0.5 + (featureValue / 100) * 2;
const rotation = (currentFrame / totalFrames) * Math.PI * 2 * speedMultiplier;
p5.push();
p5.rotateZ(rotation);
// Helper function to draw image at position
const drawImageAt = (x, y) => {
p5.push();
p5.translate(x, y, 0);
p5.scale(scale);
p5.texture(mainImage);
p5.plane(mainImage.width, mainImage.height);
p5.pop();
};
// Center image
drawImageAt(0, 0);
// Top arm (up 2, then right 2)
drawImageAt(0, -spacing);
drawImageAt(0, -spacing * 2);
drawImageAt(spacing, -spacing * 2);
drawImageAt(spacing * 2, -spacing * 2);
// Right arm (right 2, then down 2)
drawImageAt(spacing, 0);
drawImageAt(spacing * 2, 0);
drawImageAt(spacing * 2, spacing);
drawImageAt(spacing * 2, spacing * 2);
// Bottom arm (down 2, then left 2)
drawImageAt(0, spacing);
drawImageAt(0, spacing * 2);
drawImageAt(-spacing, spacing * 2);
drawImageAt(-spacing * 2, spacing * 2);
// Left arm (left 2, then up 2)
drawImageAt(-spacing, 0);
drawImageAt(-spacing * 2, 0);
drawImageAt(-spacing * 2, -spacing);
drawImageAt(-spacing * 2, -spacing * 2);
p5.pop();
}
▶ №15391159[Quote]>>15391308
annudah swasika
function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const tileSize = 20 + (featureValue / 100) * 30;
const gridSpacing = tileSize * 1.1;
// Calculate rotation based on frame for smooth looping
const rotation = (currentFrame / totalFrames) * Math.PI * 2;
p5.push();
p5.translate(0, 0, 0);
p5.rotateZ(rotation);
// Function to draw a tile at position
function drawTile(x, y) {
p5.push();
p5.translate(x, y, 0);
p5.image(mainImage, -tileSize / 2, -tileSize / 2, tileSize, tileSize);
p5.pop();
}
// Draw swastika pattern - four arms with 90-degree bends
const armLength = 6;
const bendOffset = 3;
// Arm 1: pointing up, then bends right
for (let i = 0; i < armLength; i++) {
drawTile(0, -i * gridSpacing);
}
for (let i = 1; i < bendOffset; i++) {
drawTile(i * gridSpacing, -(armLength - 1) * gridSpacing);
}
// Arm 2: pointing right, then bends down
for (let i = 0; i < armLength; i++) {
drawTile(i * gridSpacing, 0);
}
for (let i = 1; i < bendOffset; i++) {
drawTile((armLength - 1) * gridSpacing, i * gridSpacing);
}
// Arm 3: pointing down, then bends left
for (let i = 0; i < armLength; i++) {
drawTile(0, i * gridSpacing);
}
for (let i = 1; i < bendOffset; i++) {
drawTile(-i * gridSpacing, (armLength - 1) * gridSpacing);
}
// Arm 4: pointing left, then bends up
for (let i = 0; i < armLength; i++) {
drawTile(-i * gridSpacing, 0);
}
for (let i = 1; i < bendOffset; i++) {
drawTile(-(armLength - 1) * gridSpacing, -i * gridSpacing);
}
// Center square
drawTile(0, 0);
p5.pop();
}
▶ №15391308[Quote]
>>15391159the ai is retarded so i had to fix a few things myself to make it look good here's the fixed code
function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const tileSize = 20 + (featureValue / 100) * 30;
const gridSpacing = tileSize * 1.1;
// Calculate rotation based on frame for smooth looping
const rotation = (currentFrame / totalFrames) * Math.PI * 2;
p5.push();
p5.translate(0, 0, 0);
p5.rotateZ(rotation);
// Function to draw a tile at position
function drawTile(x, y) {
p5.push();
p5.translate(x, y, 0);
p5.image(mainImage, -tileSize / 2, -tileSize / 2, tileSize, tileSize);
p5.pop();
}
// Draw swastika pattern - four arms with 90-degree bends
const armLength = 4;
const bendOffset = 4;
// Arm 1: pointing up, then bends right
for (let i = 0; i < armLength; i++) {
drawTile(0, -i * gridSpacing);
}
for (let i = 1; i < bendOffset; i++) {
drawTile(i * gridSpacing, -(armLength - 1) * gridSpacing);
}
// Arm 2: pointing right, then bends down
for (let i = 0; i < armLength; i++) {
drawTile(i * gridSpacing, 0);
}
for (let i = 1; i < bendOffset; i++) {
drawTile((armLength - 1) * gridSpacing, i * gridSpacing);
}
// Arm 3: pointing down, then bends left
for (let i = 0; i < armLength; i++) {
drawTile(0, i * gridSpacing);
}
for (let i = 1; i < bendOffset; i++) {
drawTile(-i * gridSpacing, (armLength - 1) * gridSpacing);
}
// Arm 4: pointing left, then bends up
for (let i = 0; i < armLength; i++) {
drawTile(-i * gridSpacing, 0);
}
for (let i = 1; i < bendOffset; i++) {
drawTile(-(armLength - 1) * gridSpacing, -i * gridSpacing);
}
// Center square
drawTile(0, 0);
p5.pop();
}
▶ №15391321[Quote]
>AI
Dropped
▶ №15391324[Quote]
>AI
kys
▶ №15391329[Quote]
>AI effects
yup its trash
▶ №15391403[Quote]>>15391461
>>15391391function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const numFrogs = Math.floor(3 + (featureValue / 100) * 7);
const scaleFactor = (size / Math.max(mainImage.width, mainImage.height)) * 0.4;
for (let i = 0; i < numFrogs; i++) {
p5.push();
const seed = i * 12.7;
const phase = (currentFrame / totalFrames) * Math.PI * 2;
// Horizontal position
const xRange = size * 0.35;
const xPos = Math.sin(phase * 0.8 + seed) * xRange;
// Vertical position with jumping motion
const yRange = size * 0.3;
const jumpCycle = Math.sin(phase + seed * 0.5);
const yPos = Math.sin(phase * 0.6 + seed) * yRange - Math.abs(jumpCycle) * size * 0.25;
// Rotation based on horizontal movement
const rotation = Math.sin(phase + seed) * 0.4;
p5.translate(xPos, yPos, 0);
p5.rotateZ(rotation);
p5.scale(scaleFactor);
p5.texture(mainImage);
p5.plane(mainImage.width, mainImage.height);
p5.pop();
}
}
▶ №15391426[Quote]
>AI
And… Im out!
▶ №15391461[Quote]
>>15391403what was the prompt
▶ №15391523[Quote]
function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const biggestImageDimension = mainImage.width > mainImage.height ? mainImage.width : mainImage.height;
const baseScale = (size / biggestImageDimension) * 0.63;
// Create a circular trail path
const trailCount = Math.floor(8 + (featureValue / 100) * 12);
const progress = (currentFrame / totalFrames) * Math.PI * 2;
// Draw trail images (ghosts)
for (let i = 0; i < trailCount; i++) {
const trailProgress = progress - (i / trailCount) * Math.PI * 2;
const trailRadius = 150 + (featureValue / 100) * 100;
const x = Math.cos(trailProgress) * trailRadius;
const y = Math.sin(trailProgress) * trailRadius;
p5.push();
p5.translate(x, y, 0);
p5.scale(baseScale * 0.8);
// Fade out trailing images
const alpha = 255 * (1 - (i / trailCount));
p5.tint(255, alpha);
p5.texture(mainImage);
p5.plane(mainImage.width, mainImage.height);
p5.pop();
}
// Draw main image at current position
const mainRadius = 150 + (featureValue / 100) * 100;
const mainX = Math.cos(progress) * mainRadius;
const mainY = Math.sin(progress) * mainRadius;
p5.push();
p5.translate(mainX, mainY, 0);
p5.scale(baseScale);
p5.tint(255, 255);
p5.texture(mainImage);
p5.plane(mainImage.width, mainImage.height);
p5.pop();
}
▶ №15391548[Quote]
>>15391455function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const t = currentFrame / totalFrames;
const angle = t * Math.PI * 2;
// Evil red glow intensity based on feature value
const glowIntensity = featureValue / 100;
// Background with pulsing red aura
p5.push();
p5.translate(0, 0, -2);
const pulseGlow = 0.3 + Math.sin(angle * 3) * 0.2;
p5.fill(139, 0, 0, pulseGlow * 255 * glowIntensity);
p5.noStroke();
p5.sphere(size * 0.8);
p5.pop();
// Scaling
const biggestImageDimension = mainImage.width > mainImage.height ? mainImage.width : mainImage.height;
p5.scale((size / biggestImageDimension) * 0.63);
// Evil rotations - multiple axes for chaotic feel
p5.rotateY(angle);
p5.rotateX(Math.sin(angle * 1.5) * 0.3);
p5.rotateZ(Math.sin(angle * 0.7) * 0.2);
// Wobble distortion
const wobble = Math.sin(angle * 2.5) * 15;
p5.translate(wobble * 0.1, Math.cos(angle * 1.8) * wobble * 0.08, 0);
// Evil red tint overlay
p5.tint(255 + glowIntensity * 50, 100 - glowIntensity * 80, 100 - glowIntensity * 80);
p5.texture(mainImage);
p5.plane(mainImage.width, mainImage.height);
}
▶ №15391580[Quote]
function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const progress = currentFrame / totalFrames;
const explosionPhase = Math.sin(progress * Math.PI);
const intensity = featureValue / 100;
const cols = 4;
const rows = 4;
const pieceWidth = mainImage.width / cols;
const pieceHeight = mainImage.height / rows;
const maxScale = size / Math.max(mainImage.width, mainImage.height) * 0.63;
p5.push();
p5.scale(maxScale);
for (let row = 0; row < rows; row++) {
for (let col = 0; col < cols; col++) {
p5.push();
const centerX = (col - cols / 2 + 0.5) * pieceWidth;
const centerY = (row - rows / 2 + 0.5) * pieceHeight;
const distance = Math.sqrt(centerX * centerX + centerY * centerY);
const angle = Math.atan2(centerY, centerX);
const explosionDist = explosionPhase * distance * 2 * intensity;
const tx = Math.cos(angle) * explosionDist;
const ty = Math.sin(angle) * explosionDist;
const rotationAmount = explosionPhase * Math.PI * 4 * intensity;
p5.translate(
centerX + tx,
centerY + ty,
0
);
p5.rotateX(rotationAmount * 0.5);
p5.rotateY(rotationAmount);
p5.rotateZ(rotationAmount * 0.3);
const sx = 1 - explosionPhase * 0.2 * intensity;
p5.scale(sx);
p5.fill(255);
p5.texture(mainImage);
p5.plane(pieceWidth, pieceHeight);
p5.pop();
}
}
p5.pop();
}
▶ №15391632[Quote]
function animate(p5, props) {
const { mainImage, size, currentFrame, totalFrames, bgColor, featureValue } = props;
p5.background(bgColor);
const t = (currentFrame / totalFrames) * Math.PI * 2;
const speed = 0.5 + (featureValue / 100) * 1.5;
const trailLength = Math.floor(5 + (featureValue / 100) * 15);
const biggestImageDimension = Math.max(mainImage.width, mainImage.height);
const scaleFactor = (size / biggestImageDimension) * 0.5;
// Draw ghost trail with decreasing opacity
for (let i = trailLength; i > 0; i–) {
const trailT = t - (i / trailLength) * 0.3 * speed;
const x = Math.sin(trailT * speed) * size * 0.25;
const y = Math.cos(trailT * speed * 0.7) * size * 0.2;
const z = Math.sin(trailT * speed * 0.5) * size * 0.15;
const opacity = (i / trailLength) * 0.4;
p5.push();
p5.translate(x, y, z);
p5.scale(scaleFactor);
p5.tint(255, 255, 255, opacity * 255);
p5.texture(mainImage);
p5.plane(mainImage.width, mainImage.height);
p5.pop();
}
}
▶ №15393109[Quote]
bumo
▶ №15393771[Quote]
I'll be using that feature now, thanks.
▶ №15396522[Quote]
bumping this gem factory
▶ №15396530[Quote]
somephono 'chive this thread nooooa