VP8 Image Analyzer

Analyze a WebP/VP8 image with Sharp, generate a grayscale displacement map, and render it as an interactive Three.js 3D relief surface

Upload a WebP or common raster image. Sharp extracts metadata, creates a grayscale height map, and the browser uses Three.js PlaneGeometry with displacementMap for realtime 3D rotation and height inspection.

Example Results

1 examples

Inspect a WebP texture as a 3D relief surface

Convert image brightness into a Sharp-generated displacement map and review depth changes in Three.js

Interactive Three.js PlaneGeometry with Sharp grayscale displacement map.
View input parameters
{ "imageFile": "/public/samples/images/sample-landscape.webp", "displacementScale": 1.25, "segments": 192, "maxTextureSize": "1024", "autoRotate": true, "wireframe": false }

Click to upload file or drag and drop file here

Maximum file size: 20MB Supported formats: image/webp, image/jpeg, image/png, image/avif

0 1.25 4
32 192 320

Key Facts

Category
Design & Color
Input Types
file, range, select, checkbox
Output Type
html
Sample Coverage
4
API Ready
Yes

Overview

The VP8 Image Analyzer transforms standard 2D images into interactive 3D relief surfaces. By uploading a WebP, JPEG, PNG, or AVIF file, the tool uses Sharp to generate a grayscale displacement map based on image brightness, which is then rendered in real-time using Three.js. Users can adjust displacement scale, plane segments, and texture size to inspect depth changes and visualize image data in a 3D space.

When to Use

  • When you need to visualize the brightness or depth information of a 2D image as a 3D topographical map.
  • When testing displacement maps and height maps for 3D modeling or game development workflows.
  • When inspecting WebP or VP8 image metadata and structural details through a visual relief representation.

How It Works

  • Upload a supported raster image file, such as WebP, JPEG, PNG, or AVIF.
  • The backend processes the image using Sharp, extracting metadata and converting it into a grayscale height map.
  • The browser renders a Three.js PlaneGeometry, applying the height map as a displacement texture.
  • Interact with the 3D model in real-time, adjusting displacement scale, wireframe overlays, and texture resolution.

Use Cases

Visualizing terrain height maps for game engines or GIS applications.
Reviewing texture displacement effects before applying them in 3D rendering software like Blender.
Creating interactive 3D data visualizations from standard 2D brightness maps.

Examples

1. Visualizing a Terrain Height Map

3D Environment Artist
Background
An artist is preparing a landscape texture for a game engine and needs to verify the elevation data.
Problem
Checking if the grayscale height map produces the correct terrain peaks and valleys without opening heavy 3D software.
How to Use
Upload the terrain WebP image, set Displacement Scale to 2.0, and increase Plane Segments to 256 for higher detail.
Example Config
Displacement Scale: 2.0, Plane Segments: 256, Max Texture Size: 2048 px
Outcome
The browser renders a detailed 3D terrain model, allowing the artist to rotate and inspect the elevation accuracy instantly.

2. Inspecting Displacement Mesh Density

Technical Artist
Background
A technical artist is optimizing a displacement material and needs to see how different polygon counts affect the visual output.
Problem
Determining the lowest acceptable mesh density that still accurately represents the displacement map.
How to Use
Upload the texture, enable the Wireframe Overlay, and adjust the Plane Segments slider between 64 and 192.
Example Config
Wireframe Overlay: true, Plane Segments: 128, Auto Rotate: false
Outcome
The 3D viewer displays the wireframe mesh, clearly showing how the geometry deforms based on the image brightness at different segment levels.

Try with Samples

image, png, jpg

Related Hubs

FAQ

What image formats are supported?

You can upload WebP, JPEG, PNG, and AVIF images up to 20MB in size.

What does the displacement scale do?

It controls the intensity of the 3D extrusion. A higher value stretches the bright areas further up from the base plane.

Why change the plane segments?

Increasing plane segments adds more geometric detail to the 3D mesh, making the relief smoother, but it requires more processing power.

Can I view the underlying mesh structure?

Yes, enabling the Wireframe Overlay option displays the polygon grid of the 3D plane instead of a solid texture.

How is the 3D height calculated?

The tool converts the image to grayscale. Lighter pixels are elevated higher, while darker pixels remain closer to the base plane.

API Documentation

Request Endpoint

POST /en/api/tools/vp8-image-analyzer

Request Parameters

Parameter Name Type Required Description
imageFile file (Upload required) Yes -
displacementScale range No -
segments range No -
maxTextureSize select No -
autoRotate checkbox No -
wireframe checkbox No -

File type parameters need to be uploaded first via POST /upload/vp8-image-analyzer to get filePath, then pass filePath to the corresponding file field.

Response Format

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

AI MCP Documentation

Add this tool to your MCP server configuration:

{
  "mcpServers": {
    "elysiatools-vp8-image-analyzer": {
      "name": "vp8-image-analyzer",
      "description": "Analyze a WebP/VP8 image with Sharp, generate a grayscale displacement map, and render it as an interactive Three.js 3D relief surface",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=vp8-image-analyzer",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

You can chain multiple tools, e.g.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, max 20 tools.

Supports URL file links or Base64 encoding for file parameters.

If you encounter any issues, please contact us at [email protected]