VirtualLens Controller Guide
How to open
Open VirtualLens Controller from the VSA sidebar.

| 🏠Document Top | ⚖️ Terms of Service | 🔒 Privacy Policy |
VirtualLens Controller allows you to operate VirtualLens2 camera settings in real-time. Integration with VirtualLens2 avatars in VRChat is possible via OSC (Open Sound Control).
VirtualLens Controller Overview
Using VirtualLens Controller:
- Real-time Control: Parameters reflect in VRChat real-time
- Multiple Parameters: Support focal distance, aperture, exposure, and more
- Preset Saving: Save frequently used settings as presets
- Intuitive UI: Easy operation with sliders and knobs
Access Controller Screen
Open from Menu
Steps:
- Check sidebar menu (left side)
- Look for “Controller” item
- Click to open controller screen
Keyboard Shortcut
Controller screen may have dedicated shortcut keys. See Keyboard Shortcuts for details.
Using Controller Screen
Screen Composition
Controller screen consists of these sections:
- Parameter Section: Various camera parameter settings
- Preset Section: Preset save and load
- OSC Status Display: Communication status confirmation
- Preview: Real-time preview of settings reflected in VRChat
Parameter Settings
Focal Length
Corresponds to VirtualLens2 zoom setting.
Range: 16mm - 300mm Unit: mm Operation:
- Drag slider left/right to adjust
- Direct input to specify value
- “Reset” button returns to default (50mm)
Examples:
- 16mm: Suitable for wide-angle shooting
- 50mm: Standard portrait shooting
- 200mm: Captures distant subjects large
Aperture
Controls image brightness and depth of field (bokeh).
Range: F1.4 - F16 Unit: F-stop Operation:
- Drag slider left/right
- Direct input value
- “Reset” button returns to default (F4.0)
Examples:
- F1.4-F2.8: Background bokeh emphasizes subject (portrait-oriented)
- F4.0-F8.0: Balanced exposure and bokeh
- F11-F16: Overall sharp, background clear
Exposure
Adjusts overall image brightness.
Range: -5.0 - +5.0 Unit: EV (Exposure Value) Operation:
- Drag slider left/right
- Direct input value
- “Auto” button sets to auto exposure
Examples:
- -5.0 - -2.0: Adjust darker environment shots (darker)
- 0.0: Standard exposure
- +2.0 - +5.0: Shoot dark areas brighter
Depth of Field
Controls bokeh strength.
Range: 0 - 100 Operation:
- Drag slider left/right
- Direct input value
Examples:
- 0: No bokeh (overall sharp)
- 50: Moderate bokeh
- 100: Maximum bokeh (strong background bokeh)
Real-time Reflection
Parameter changes immediately reflect in VRChat camera.
Verification:
- Equip VirtualLens2 in VRChat
- Adjust parameters in controller screen
- Confirm reflection in VRChat screen (viewfinder)
Notes:
- OSC communication must be properly established
- Network latency may cause frame delay reflection
Integral Camera Control
Integral is a camera system for VRChat. You can operate it from the controller screen just like VirtualLens2.
Accessing Integral Controller
From the Controller screen in the sidebar menu, switch tabs to use VirtualLens2 and Integral interchangeably.
Main Parameters
Lens Settings
| Parameter | Range | Description |
|---|---|---|
| Aperture | 0.0 ~ 1.0 | Controls bokeh strength and brightness |
| Zoom | 0.0 ~ 1.0 | Camera zoom level |
| Exposure | 0.0 ~ 1.0 | Overall image brightness |
Focus Control
| Parameter | Description |
|---|---|
| Focus Mode | MF (Manual) / AF (Auto) / Visual AF |
| Focus Value | Manual focus position adjustment |
| Pause AF | Temporarily pause auto-focus |
Bokeh Shape
Select Integral’s bokeh shape:
| Shape | Description |
|---|---|
| Circle | Natural, elegant bokeh (default) |
| Hexagon | Geometric bokeh pattern |
| Star | Sparkling light effect |
| Heart | Cute presentation |
| Bubble | Transparent bubble effect |
Bokeh Rotation: Rotate bokeh shape to adjust angle.
Shutter Control
| Parameter | Description |
|---|---|
| Shutter Speed | Base exposure time |
| Shutter Speed Add | Fine-tuning adjustment |
| Rolling Shutter | Film camera shutter effect (OFF / Left→Right / Top→Bottom, etc.) |
Lens Effects
| Effect | Description |
|---|---|
| Vignetting | Peripheral light falloff |
| Aperture Aspect | Adjust aperture vertical/horizontal ratio |
| Chromatic Aberration | Lens color separation effect |
| Spherical Aberration | Lens characteristic simulation |
Special Filters
Cross Filter: Adds cross-shaped light effect
- Weight: Filter effect strength
- Scale: Cross size
- Angle: Cross rotation angle
Tilt (Tilt Shift)
Tilt lens in X/Y direction for special focus effects.
Composition Mode
Select image processing algorithm:
| Mode | Description |
|---|---|
| Normal | Standard image processing |
| Lighten | Emphasize bright areas |
| Darken | Emphasize dark areas |
| Depth | Use depth information |
| Movie | Film-style processing |
Other Features
| Feature | Description |
|---|---|
| Grid Display | Show composition guide |
| Histogram | Check exposure |
| Selfie Mode | Front-facing camera |
| Auto Level | Auto exposure adjustment |
| Drone Speed | Movement speed in drone mode |
OSC Communication Settings
What is OSC?
OSC (Open Sound Control) is a protocol that transmits parameters real-time over network. Exchange numerical data between VRChat and VSA.
Port Settings
Default Port
Default Value: 9001
VRChat initial settings use port 9001. Usually works with this setting.
Change Port Number
When Change Needed:
- Port 9001 already in use by another app
- Network requires different port
How to Change:
- Open “OSC Settings” section in controller screen
- Enter desired port number in “Port Number” field
- Click “Apply”
- Set same port number on VRChat side too
Verify Communication Status
Status Display
Communication status displays on controller screen:
- Connected (green): Properly communicating with VRChat
- Disconnected (gray): Communication not established with VRChat
- Error (red): Communication error occurred
Diagnosis Method
Steps:
- Equip VirtualLens2 in VRChat
- Open controller screen
- Wait until status becomes “Connected”
- Change one parameter to test, confirm VRChat reflection
Preset Management
What are Presets?
Save preset settings combining camera parameters (focal distance, aperture, exposure, etc.).
Save Preset
Steps:
- Adjust each parameter to desired value
- Click “Save” button in “Preset” section
- Enter preset name (e.g., “Portrait”, “Wide-angle”)
- Click “Save”
Load Preset
Steps:
- Select preset to load from list in “Preset” section
- Click “Load” button
- Saved parameter values all apply
- Auto-reflect in VRChat
Edit Preset
Steps:
- Load preset
- Change parameters
- Click “Overwrite” button next to original preset name
- Click “Overwrite” in confirmation dialog
Delete Preset
Steps:
- Select preset to delete
- Click “Delete” button
- Click “Delete” in confirmation dialog
VRChat Side Settings
Equip VirtualLens2 Avatar
VirtualLens Controller requires equipping avatar with VirtualLens2 camera in VRChat.
Verification:
- Equip avatar in VRChat
- Check View > Viewfinder if VirtualLens2 viewfinder displays
Enable OSC (VRChat Side)
VRChat Setup:
- Launch VRChat
- Open Settings > OSC
- Check “Enable OSC”
- Verify port number is 9001 (or VSA-specified value)
- Save settings
Verify VirtualLens2 Parameters
Confirm VRChat VirtualLens2 supports these parameters:
/avatar/parameters/VL2_FocalLength- Focal distance/avatar/parameters/VL2_Aperture- Aperture/avatar/parameters/VL2_Exposure- Exposure/avatar/parameters/VL2_DepthOfField- Depth of field
Verification:
- VRChat Settings > Developer > Display advanced info
- Check avatar parameters list
Troubleshooting
OSC Communication Not Established
Symptom: Status remains “Disconnected”
Solutions:
- Verify VRChat OSC settings
- Confirm “Enable OSC” checked
- Confirm port number matches (default: 9001)
- Check firewall settings
- Confirm firewall not blocking communication
- Check security software settings
- Verify port not in use
netstat -ano | findstr :9001- If port in use by other process, change to different port
- Restart VRChat and VSA
- Completely close both and restart
Parameters Not Reflecting
Symptom: Controller changed but VRChat doesn’t reflect
Solutions:
- Check communication status
- Verify controller screen status is “Connected”
- If “Disconnected”, see “OSC Communication Not Established”
- Verify VirtualLens2 equipped
- Confirm correct avatar equipped in VRChat
- Confirm VirtualLens2 viewfinder displays
- Check parameter names
- Verify correct parameter names configured on avatar
- Restart VSA
- Reset OSC connection by completely restarting VSA
Parameter Response Slow
Symptom: Parameter changes delayed in VRChat reflection
Solutions:
- Check network connection
- Verify internet connection stability
- Check ping value (
ping 127.0.0.1)
- Check other app loads
- Stop apps consuming network bandwidth
- Check CPU usage not high
- Check VRChat load
- Many players in instance may reduce performance
Parameter Reset Not Working
Symptom: Reset button clicked but value doesn’t return
Solutions:
- Check target parameter reset settings
- Verify correct parameter selected
- Check avatar settings
- Verify VirtualLens2 reset value configured correctly on VRChat
- Restart controller
- Close controller screen and reopen
Usage Examples
Example 1: Portrait Shooting Preset
Goal: VRChat portrait-focused shooting
Settings:
- Focal Length: 85mm (portrait standard)
- Aperture: F2.0 (background bokeh)
- Exposure: 0 EV (standard brightness)
- Depth of Field: 80 (background bokeh)
Steps:
- Set above values in controller
- Save as “Portrait” preset
- Click “Load” for portrait shooting
Example 2: Landscape Shooting Preset
Goal: Capture world full-view
Settings:
- Focal Length: 35mm (wide-angle)
- Aperture: F8.0 (overall sharp)
- Exposure: 0.5 EV (slightly bright)
- Depth of Field: 20 (minimal bokeh)
Steps:
- Set above values in controller
- Save as “Landscape” preset
- Click “Load” for landscape shooting
Example 3: Night Shooting Preset
Goal: Sufficient brightness in dark world
Settings:
- Focal Length: 50mm (standard)
- Aperture: F1.4 (maximum brightness)
- Exposure: +3.0 EV (bright adjust)
- Depth of Field: 50 (moderate bokeh)
Steps:
- Set above values in controller
- Save as “Night Shooting” preset
- Click “Load” for night shooting
Related Documentation
- VRChat Integration - General VRChat integration info
- Game Config Guide - Detailed OSC settings
- Keyboard Shortcuts - Shortcut list