> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://documentation.celestory.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 🟧 Input Camera

# 🟧 Input Camera

${frame}[Video: anatomy of the Input Camera block](https://celestory-docs-videos.netlify.app/en/anatomie-bloc/inputcamera.html)

![Input Camera](https://celestory-docs-illustrations.netlify.app/en/InputCamera_EN.svg)

The Input Camera block lets the player take a photo with their device's camera, directly inside the story. It's a simple way to add a visual interaction, no coding needed.

This block is reserved for Business subscriptions.

## 📥 Entries

- placeholder (Text): the example text shown before the photo is taken, to guide the player (e.g.: "Take a photo of your character").
- Incoming Stream: this block activates as soon as it receives an incoming stream, with no other required setting.

## 📤 Outings

- Outgoing Stream: signal sent once the photo is ready, to continue the story.
- image (Image): the photo taken with the camera, usable directly by other blocks (for example to display it).
- text (Text): a text linked to the image, if the engine provides one (for example an automatic description).

## 💡 Example of use

Scenario: creating a custom avatar

1. The player arrives on the character creation screen.
1. The Input Camera block shows the placeholder "Take a photo of your face".
1. After allowing camera access, the player takes a photo.
1. The image output is sent to an Image Display block to show the avatar.
1. The Outgoing Stream continues to the rest of the story.

## ⚙️ Technical Details

- Permissions: this block needs camera access permission. Without it, the capture will not work.
- Compatibility: works in the browser (PWA recommended) and on mobile (iOS/Android). Requires a Business subscription.
- Storage: the image is handled automatically in memory and can be used directly by other blocks, with no technical manipulation needed.

---

*Documented version: v1*