SweetHome3DJS is a web-based version of the popular interior design application Sweet Home 3D, originally implemented in Java. This project represents a work-in-progress effort to refactor and modernize the existing SweetHome3DJS implementation.
Sweet Home 3D is a free interior design application that helps you draw the plan of your house, arrange furniture on it, and visit the results in 3D. The original application is written in Java and runs as a desktop application.
This project aims to evolve the existing SweetHome3DJS implementation by:
- Eliminating Java toolchains dependency
- Refactoring the codebase to use modern frontend technologies:
- NPM toolchain
- ECMAScript Modules (ESM)
- TypeScript
- Making the application more familiar to modern frontend developers
- Improving maintainability and extensibility
Warning
This project is a WORK IN PROGRESS and is NOT READY FOR PRODUCTION USE.
Critical features such as import, export, save, and load functionalities require significant refactoring and additional development before this application can be considered stable for production environments. Users should exercise extreme caution and expect incomplete or non-functional features.
- Refactor existing codebase to use modern frontend technologies
- Eliminate dependency on Java toolchains
- Improve application familiarity for modern frontend developers
- Enhance maintainability and extensibility
- Resolve Vite and TypeScript configuration issues
- Fix missing type declarations for core dependencies
- Address PNPM package management conflicts
- Node.js (version 16 or higher)
- npm or pnpm package manager
# Clone the repository
git clone https://github.com/luxvitae-eco/SweetHome3DJS.git
# Navigate to the project directory
cd SweetHome3DJS
# Install dependencies
pnpm install# Start the development server
pnpm dev# Build the application
pnpm buildSweetHome3DJS/
├── public/ # Static assets
│ └── lib/ # Library files and resources
├── src/ # Source code
│ ├── HomeRecorder/ # Home recording functionality
│ ├── UserPreferences/ # User preferences management
│ └── ... # Other core modules
├── index.html # Main HTML entry point
├── package.json # Project dependencies and scripts
└── vite.config.ts # Vite configuration
- Vite - Next generation frontend tooling
- TypeScript - Typed JavaScript
- ES Modules - Modern JavaScript module system
- Custom 3D rendering engine based on WebGL
This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.
The original Sweet Home 3D is also licensed under GPL v2.0. This web adaptation maintains the same licensing terms to ensure compatibility and openness.
- Original Sweet Home 3D project by Emmanuel Puybaret
- luxvitae-eco for the ongoing refactoring efforts