-
Notifications
You must be signed in to change notification settings - Fork 0
Installation Guide
DSEpy is currently in active development and testing. At this stage, it runs directly from the Python source code within CloudCompare's Python environment.
This guide covers system prerequisites, step-by-step setup, script execution inside CloudCompare, and internationalization settings.
Before running DSEpy, ensure your workstation meets the following requirements:
- Host Application: CloudCompare (v2.12 or newer recommended) with Python support enabled.
- Python Environment: Python 3.9+ (configured within or linked to your CloudCompare installation).
DSEpy relies on the following standard Python libraries:
-
numpy&scipy: Vector mathematics, spatial indexing, and matrix operations. -
matplotlib: Stereonet projection rendering, density contours, and color mapping. -
Pillow(PIL): Image handling and icon processing for the UI.
Clone the repository using Git or download the source code as a .zip archive:
git clone [https://github.com/adririquelme/DSEpy.git](https://github.com/adririquelme/DSEpy.git)Install the required packages into the Python environment used by your CloudCompare installation:
# Run using the Python executable associated with CloudCompare
python -m pip install -r requirements.txt- Open CloudCompare and load your 3D point cloud (ensure normal vectors are calculated).
- Open the Python Script Editor / Console inside CloudCompare.
- Open or execute
main_gui.pyfrom the downloaded DSEpy folder:
exec(open("path/to/DSEpy/main_gui.py").read())ℹ️ Roadmap Note: Standalone executables (
.exe) and potential native C++ CloudCompare plugin integration are planned for future releases as community testing progresses.
DSEpy features dynamic multi-language support managed through lightweight JSON translation dictionary files stored in the locales/ directory. The base translation file is en.json (English), which serves as the reference template for all interface strings, menu items, tooltips, and dialog messages.
At application launch, DSEpy scans the locales/ folder for available .json language files. When a user selects a language in the interface preferences:
- The corresponding translation dictionary is loaded into memory.
- The UI framework maps text identifiers (keys) to their localized strings (values).
- If a specific text key is missing from a translated file, DSEpy automatically falls back to the default English string defined in
en.json.
Translation files use standard nested JSON objects representing GUI modules and components.
Important Rule: When translating, only edit the values on the right side of the colon (
:). Do not modify the keys on the left side, as they are hardcoded into the application logic.
{
"main_window": {
"title": "DSEpy - Discontinuity Set Extractor",
"file_menu": "File",
"tools_menu": "Tools"
},
"spatial_clustering": {
"tab_title": "3. Spatial clustering and plane fitting",
"k_neighbor_label": "K-th Neighbor (K):",
"coplanarity_merge_tooltip": "Tolerance multiplier (k_sigmas) to merge coplanar patches into a single plane."
}
}Users and contributors can easily add support for a new language without compiling code or modifying the core repository structure:
-
Locate the Base File: Navigate to the
locales/folder in the root directory of DSEpy and locateen.json. -
Duplicate & Rename: Copy
en.jsonand rename the new file using the corresponding ISO 639-1 language code (e.g.,es.jsonfor Spanish,fr.jsonfor French,de.jsonfor German,ca.jsonfor Catalan). -
Translate Values: Open the new
.jsonfile in a text editor (e.g., VS Code, Notepad++) and translate all string values into the target language. -
Save and Restart: Save the file inside the
locales/directory and restart DSEpy—the new language will automatically appear in the interface language dropdown menu.
-
Format Placeholders: Preserve dynamic variable placeholders (e.g.,
{0},{count},%s) as they appear in the original text. -
Special Characters & Escaping: If a double quote (
") appears within a string value, escape it with a backslash (\"). - UTF-8 Encoding: Always save translation JSON files with UTF-8 encoding to ensure correct rendering of special characters, accents, and non-Latin scripts.
- Get an overview of the full analysis process in Workflow Overview.
- Learn how to calculate point normals and set poles in Stereonet & Poles.
- Explore orientation grouping in Set Classification.