Skip to main content

Configuration Page

The configuration page is the home page of Braincandy (/). This is where you set up everything before starting a playback session. Every option is explained in detail below.

info

When you first arrive on the configuration page, a short audio jingle plays to welcome you. This is purely cosmetic and plays automatically.

Screen Layout

What it does: Determines how many media cells are displayed simultaneously during playback.

You can choose from 8 grid layouts:

ScreensGrid LayoutDescription
11×1Single full-screen view
22×1Two side-by-side panels
33×1Three columns
42×2Two rows, two columns
63×2Three columns, two rows
84×2Four columns, two rows
93×3Three-by-three grid
124×3Four columns, three rows

Each layout option is displayed as a visual thumbnail showing the grid pattern. Click on any thumbnail to select it. The currently selected layout has a highlighted primary-colored border.

tip

More screens means more media is loaded into each screen independently. Each screen has its own timer, skip button, back button, and favorite button.


Playback Speed

What it does: Controls how long each image or GIF is displayed before automatically advancing to the next item.

  • Range: 1 second to 60 seconds
  • Default: 10 seconds
  • Adjustment: Drag the slider to set the desired interval

The speed setting applies to images and GIFs only. Videos and Redgifs play until they end naturally — once a video finishes, the next media item is loaded automatically.

The description text dynamically updates to show the current setting, e.g., "Each image/GIF will be shown for 10 seconds."


Pixelation

What it does: Applies a pixelation (blur) effect to all media during playback.

SettingDescription
Enable PixelationToggle switch to turn the effect on/off
Pixelation LevelSlider from 32 to 64 (lower = more pixelated, higher = less pixelated)

When enabled, a live preview is shown using a sample image rendered on a canvas element. The preview updates in real-time as you adjust the level slider.

How Pixelation Works

The pixelation effect works by:

  1. Drawing the media at a very low resolution (determined by the pixelation level)
  2. Scaling it back up to the full display size with image smoothing disabled
  3. This creates a blocky, pixelated appearance

The effect applies to all media types: images, GIFs, videos, and Redgifs. Since Redgifs are now loaded as native <video> elements (instead of iframes), they fully support the pixelation filter.


Beat Meter

What it does: Displays an animated metronome during playback that oscillates at a configurable BPM (beats per minute) rate.

SettingDescriptionDefault
Enable Beat MeterToggle to show/hide the beat meter during playbackOn
Beep SoundToggle to play an audible beep on each beatOn
Speed RangeDual-handle slider to set the minimum and maximum BPM30–240 BPM

The BPM range slider goes from 10 BPM to 480 BPM in steps of 10. The minimum and maximum values are displayed below the slider.

Beat Meter Behavior During Playback

The beat meter doesn't just stay at a constant BPM — it follows an intelligent progression algorithm:

Time ElapsedBehavior
0–30 secondsFixed at the minimum BPM
30 seconds – 10 minutesGradually varies between minimum and mid-range BPM
10 minutesEvent triggered: 10 seconds at maximum BPM, then 10 seconds at 0 BPM (rest), then 30 seconds of slow cooldown
10–15 minutesFull range BPM variations
After 15 minutesPermanently uses the full BPM range with minimum gradually increasing over time
After 20 minutesMinimum BPM floor increases by 20 BPM for every additional minute past 20 minutes

The BPM value changes approximately every 30 seconds during normal operation.

info

The beat meter appears as a vertical bar on the right side of the player screen. A colored dot bounces up and down along the bar in sync with the current BPM. You can mute/unmute the beep sound directly from the beat meter component during playback.


Media Types

What it does: Filters which types of media are included in the session.

TypeDescription
ImagesStatic images (JPG, PNG, BMP, WebP, SVG, TIFF)
GIFsAnimated GIF files
VideosVideo files (MP4, WebM, OGG, MOV, AVI, MKV, FLV, WMV, 3GP)
RedgifsRedgifs videos (loaded as native video via the Redgifs API v2)

Each type has a toggle switch. You must have at least one type enabled — the last remaining enabled type cannot be disabled (its toggle becomes locked).


Media Sources

There are three ways to add media to your session. They can be used individually or combined.

Reddit Content

This is the primary media source for Braincandy. See the Media Sources guide for the complete breakdown of Reddit presets, subreddit input, sorting, time range, and mode settings.

Quick overview of the Reddit section:

  • Reddit Presets — One-click buttons to add curated sets of subreddits (e.g., "General", "MILF", "Teen", "Amateur", etc.)
  • Pornstar Presets — One-click buttons for specific pornstar subreddits (e.g., "Riley Reid", "Angela White", etc.)
  • Subreddit Input — Manually type any subreddit name (supports comma-separated bulk input)
  • Sort — Hot, Rising, Top, or Controversial
  • Time Range — Past Hour, Past Day, Past Week, Past Month, Past Year, or All Time
  • Mode — Source Rotation (round-robin across subreddits) or All Mixed (shuffled together)

Local Files

What it does: Allows you to load media files directly from a folder on your computer.

Click the "Pick Folder" button to open a folder picker dialog. Once you select a folder, Braincandy will:

  1. Recursively scan all files and subfolders
  2. Load all supported media files (images, GIFs, videos)
  3. Display the count of loaded files
Browser Support

The folder picker uses the File System Access API (showDirectoryPicker), which is only supported in Google Chrome and Microsoft Edge. Other browsers (Firefox, Safari) will display an error message.

Supported file formats:

  • Images: JPG, JPEG, PNG, BMP, WebP, SVG, TIFF
  • GIFs: GIF
  • Videos: MP4, WebM, OGG, MOV, AVI, MKV, FLV, WMV, 3GP

Playlist Upload

What it does: Upload a playlist file containing URLs to online media.

Braincandy supports two playlist file formats:

FormatExtensionDescription
JSON.jsonMust contain images, gifs, and videos arrays with URL strings
XSPF.xspf, .xmlStandard XML Shareable Playlist Format — <location> elements are parsed

After uploading a valid file, a green success message shows how many media items were loaded.

Example JSON playlist format:

{
"images": ["https://example.com/photo1.jpg", "https://example.com/photo2.png"],
"gifs": ["https://example.com/anim.gif"],
"videos": ["https://example.com/clip.mp4"]
}

Start Session

At the bottom of the configuration page, you'll find two buttons:

Reset to Defaults

Resets all configuration options back to their default values:

SettingDefault Value
Screens1
Speed10 seconds
Beat MeterEnabled, with beep sound, range 30–240 BPM
PixelationDisabled, level 4
Media TypesAll enabled (images, GIFs, videos, Redgifs)
SubredditsNone
SortHot
TimePast Day
ModeSource Rotation

This button is disabled when the current configuration already matches the defaults.

Start Braincandy

Clicking this button initiates the session. Here's what happens behind the scenes:

  1. Configuration is saved — Your current settings are saved to the Pinia store (which persists to localStorage) and the URL is updated with the encoded config
  2. Reddit content is fetched — If subreddits are selected, Braincandy fetches posts from Reddit's API using an OAuth2 proxy. A progress bar shows the loading status
  3. Local files and playlists are merged — Any local files or uploaded playlist items are combined with Reddit results
  4. Media type filter is applied — Items not matching your enabled media types are removed
  5. Media pool is shuffled — The combined pool is randomly shuffled using the Fisher-Yates algorithm
  6. Session state is initialized — Counters are reset, timers start, and initial media is assigned to each screen
  7. Navigation to player — You are redirected to the /player page

Start Button Availability

The start button is disabled when:

  • No media sources are available (no subreddits, no local files, no playlist)
  • No media types are enabled
  • A fetch is currently in progress (loading spinner is shown)

Progress Indicator

While Reddit content is being fetched, a progress bar and status text are displayed:

  • The progress bar fills based on the number of subreddits processed out of the total
  • The status text shows: "Loaded X of Y subreddit(s), Z media items loaded"

Error Handling

  • If no media is found after fetching (e.g., empty subreddits), a red warning message appears: "No media found"
  • If a rate limit is hit (Reddit blocks the request), a red error message is displayed and the start button remains enabled once media has been partially loaded

Next: Learn about the player interface in the Player Page guide.