Inspiration
Inspired by the creative challenge faced by interior designers and home enthusiasts—like my wife, a furniture refinisher- Plop addresses the core problem of visualization risk. Existing tools are often complex or require external photo-editing.
Plop enables users to instantly re-imagine their living spaces by dropping images of furniture and décor onto a room photo. This eliminates guesswork, accelerates the design process, and transforms static inspiration into tangible, executable designs.
What it does
Plop is a powerful Chrome Extension that provides a fluid, real-time interior design sandbox.
Drag-and-Drop Visualization ("Plop" Action): Users can instantly place images of new furniture/décor onto a photo of their room using a simple drag-and-drop mechanism within the extension sidebar.
Gemini Nano Design Assistant (Multi-modal Context): Leveraging the multi-modal Prompt API, Gemini Nano receives the full context of both the base room image and the newly 'plopped' furniture image. Users can then ask for recommendations, including:
- Color Palette Analysis and Suggestions
- Furniture Placement based on spatial context
- Latest Interior Design Trend Integration
Photo-Realistic Composition: Using the Gemini Developer API (aka Nano Banana generateContent), the extension generates a high-fidelity, composited image that seamlessly integrates the new items into the existing scene, providing an accurate preview.
How we built it
Real-time Context: Chrome Built-in AI: Multi-modal Prompt API (Gemini Nano). Allows the small, on-device Nano model to understand the visual relationship between the room and objects, enabling hyper-relevant design feedback without a trip to the cloud.
Advanced Recommendations: Gemini Developer API (for text/image generation). Handles more complex tasks like generating trend insights and ensuring the composited image is photo-realistic and consistent.
Core Functionality: Chrome Extension APIs. Utilized to facilitate the challenging cross-context drag-and-drop (from a web page into the extension sidebar) and managing the image data flow for the LLM pipeline.
Challenges we ran into
Image Optimization for Context Windows: Had to implement aggressive but intelligent image size optimization (e.g., adaptive resizing, quality reduction) to fit the strict context windows of Gemini Nano and the Gemini 2.5 API, while maintaining sufficient visual integrity for accurate AI analysis and final rendering.
Cross-Context Data Transfer: Overcame the security challenges of implementing a direct drag-and-drop from the main browser window into the isolated Chrome Extension sidebar. This required careful handling of data transfer objects and permissions to ensure a smooth 'plop' experience.
Object Consistency in Composition: Ensuring the newly placed objects retained their correct scale, lighting, and shadow consistency within the composition engine, which is vital for the integrity of the key objects.
Accomplishments that we're proud of
Seamless Multi-Image Composition: Successfully developed a pipeline to merge multiple user-uploaded images into a single, cohesive, and consistent scene (i.e., getting multiple images to compose together correctly).
Intuitive & Performant UX: Created a clean and fast user interface that makes complex AI functionality accessible and easy to understand for non-technical users.
What we learned
- The inner-workings of Chrome extension APIs, including security and privacy considerations
- Built-in Gemini APIs and Gemini Develop APIs, LLM context windows, prompt engineerings and better understanding of how to interact with LLMs
What's next for Plop
Precision Object Replacement: Enhance the model to precisely replace existing furniture items instead of just placing new ones, improving the precision of object detection and scene manipulation.
Performance Tweak: Focus on optimizing the data serialization and network calls to improve the speed of LLM generation and overall user responsiveness.
Built With
- express.js
- framer-motion
- react
- shadcn
- tailwindcss
- typescript
- vite
- wxt
- zod
Log in or sign up for Devpost to join the conversation.