Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Contributing

Thanks for your interest in improving MeshGeneration.

## Before submitting a change

- Keep pull requests focused and explain the problem they solve.
- Describe how the change was validated. Code and scene changes should normally
be checked with the Unity version recorded in
`ProjectSettings/ProjectVersion.txt`.
- Include Unity `.meta` files for new assets, and do not commit generated folders
such as `Library`, `Temp`, `Logs`, or `obj`.
- Keep the English and Spanish documentation aligned when changing information
shared by both READMEs, or explain why a change applies to only one language.

## Automated and AI-assisted contributions

Automation and AI assistance are permitted when used responsibly. Pull requests
that use them must disclose the tools involved and the scope of their use in the
pull request description. The submitter remains responsible for understanding,
reviewing, testing, and supporting the proposed change.

Every contribution is assessed individually. Maintainers may consider its
technical quality, relevance, provenance, security implications, contributor
history, and available signals about the author's trustworthiness. Automated
generation does not establish that a change is correct or appropriate for the
project.

High-volume, misleading, undisclosed, or unsolicited machine-generated pull
requests may be closed without merging. Maintainers may also request additional
context or verification, or decline a contribution when its provenance or
reviewability is insufficient.
86 changes: 86 additions & 0 deletions README.es-ES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# MeshGeneration

[English](README.md) | Español

MeshGeneration es un entorno de experimentación en Unity para aprender y probar
la construcción, edición y procesamiento de mallas procedurales, además del
renderizado mediante shaders. El repositorio reúne prototipos pequeños basados
en escenas; no pretende ser un juego terminado ni un paquete de Unity listo para
producción.

## Contenido

- Utilidades reutilizables para crear vértices y triángulos, transformar
geometría y combinar mallas.
- Primitivas procedurales como cuadriláteros, círculos, cubos, ortoedros,
cilindros, conos, esferas, planos curvos y túneles.
- Experimentos de generación de objetos, entre ellos castillos, cofres,
calabazas y cuerdas.
- Prototipos de edición y procesamiento para extrusión, subdivisión, unión de
mallas y dos estrategias experimentales de simplificación.
- Experimentos de shaders para el Built-in Render Pipeline, con ejemplos de
surface shaders, vertex shaders, geometry shaders, burbujas, superficies
curvas y ray marching.
- Un experimento independiente de renderizado de ojos en
`Assets/Experiments/01_Eyes`.

## Requisitos

- Unity **2020.3.15f2**. La revisión exacta del editor se encuentra en
`ProjectSettings/ProjectVersion.txt`.

El proyecto utiliza el Built-in Render Pipeline de Unity y los paquetes
declarados en `Packages/manifest.json`. Abrirlo con otra versión de Unity puede
iniciar una actualización y modificar archivos serializados del proyecto.

## Primeros pasos

1. Clona este repositorio.
2. Añade la carpeta del repositorio como proyecto existente en Unity Hub.
3. Ábrelo con Unity 2020.3.15f2 y espera a que Package Manager resuelva las
dependencias.
4. Abre una de las escenas de ejemplo indicadas a continuación.
5. En los componentes que tengan inspectores personalizados, utiliza acciones
como **Generate** o **Simplify** para ejecutar el experimento.

La mayoría de los ejemplos deben abrirse directamente desde la ventana Project.
La lista de escenas de Build Settings no funciona como catálogo de todos los
experimentos.

## Escenas recomendadas

| Área | Escenas |
| --- | --- |
| Sólidos básicos | `Assets/Scenes/SolidsGeneration/CubeGeneration.unity`, `Assets/Scenes/SolidsGeneration/RectCuboidGeneration.unity` |
| Objetos procedurales | `Assets/Scenes/ObjectsGeneration/ProceduralCastle.unity`, `Assets/Scenes/ObjectsGeneration/Chest.unity`, `Assets/Scenes/ObjectsGeneration/Pumpkin.unity` |
| Herramientas de malla | `Assets/Scenes/MeshEditor.unity`, `Assets/Scenes/MeshSimplification.unity`, `Assets/Scenes/SVR19Prototype/MeshExtrusion.unity` |
| Otros generadores | `Assets/Scenes/CubeSphere.unity`, `Assets/Scenes/PCGRope.unity` |
| Shaders | `Assets/Scenes/ShaderExperiments/Circle.unity`, `Assets/Scenes/ShaderExperiments/RayMarching.unity`, `Assets/Scenes/Bubble.unity`, `Assets/Scenes/CircularDot.unity` |
| Experimento independiente | `Assets/Experiments/01_Eyes/Scene/01_Eyes.unity` |

## Estructura del repositorio

- `Assets/Scripts` — Constructores de mallas, generadores, herramientas del
editor y experimentos de procesamiento.
- `Assets/Scripts/MeshSimplification` — Prototipos de simplificación aleatoria y
basada en la distancia de los vértices.
- `Assets/Scenes` — Escenas de ejemplo, agrupadas por experimento cuando
corresponde.
- `Assets/Experiments` — Experimentos autocontenidos con sus propias escenas y
recursos.
- `Assets/Shaders` — Shaders de ShaderLab y archivos `.cginc` compartidos.
- `Assets/Material`, `Assets/Materials` y `Assets/Textures` — Materiales y
texturas utilizados en los ejemplos.
- `Packages` — Declaraciones de dependencias de Unity Package Manager.
- `ProjectSettings` — Configuración del proyecto y del editor de Unity.

## Estado del proyecto

Este es un repositorio experimental y orientado al aprendizaje. Las API, escenas
y recursos pueden cambiar sin garantías de compatibilidad, y los ejemplos no
han sido preparados ni validados para utilizarse en producción.

## Contribuciones

Antes de proponer un cambio, consulta [CONTRIBUTING.md](CONTRIBUTING.md), incluida
la política sobre contribuciones automatizadas o asistidas por IA.
83 changes: 67 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,80 @@
# MeshGeneration

A Unity project with small-scale experiments for generating and visualizing meshes.
It is intended as a sandbox to iterate on mesh-building ideas, shaders, and
supporting assets.
English | [Español](README.es-ES.md)

MeshGeneration is a Unity sandbox for learning and experimenting with procedural
mesh construction, editing, processing, and shader-driven rendering. The
repository collects small, scene-based prototypes rather than presenting a
finished game or a production-ready Unity package.

## What is included

- Reusable mesh-building helpers for vertices, triangles, transforms, and mesh
composition.
- Procedural primitives such as quads, circles, cubes, rectangular cuboids,
cylinders, cones, spheres, curved planes, and tunnels.
- Object-generation experiments for castles, chests, pumpkins, and ropes.
- Mesh-editing and processing prototypes covering extrusion, subdivision, mesh
union, and two experimental simplification strategies.
- Built-in Render Pipeline shader experiments, including surface, vertex,
geometry, bubble, curved-surface, and ray-marching examples.
- An isolated eye-rendering experiment under `Assets/Experiments/01_Eyes`.

## Requirements

- Unity **2020.3.15f2** (see `ProjectSettings/ProjectVersion.txt`).
- Unity **2020.3.15f2**. The exact editor revision is recorded in
`ProjectSettings/ProjectVersion.txt`.

The project uses Unity's Built-in Render Pipeline and packages listed in
`Packages/manifest.json`. Opening it with a different Unity version may trigger
an upgrade and modify serialized project files.

## Getting started

1. Open the project folder in Unity Hub.
2. Use Unity 2020.3.15f2 when prompted.
3. Explore the scenes under `Assets/Scenes` or the experiment assets under
`Assets/Experiments`.
1. Clone this repository.
2. In Unity Hub, add the repository directory as an existing project.
3. Open it with Unity 2020.3.15f2 and allow the Package Manager to resolve the
dependencies.
4. Open one of the sample scenes described below.
5. For components with custom inspectors, use actions such as **Generate** or
**Simplify** in the Inspector to run the experiment.

Most examples are intended to be opened directly from the Project window. The
Build Settings scene list does not serve as a catalog of every experiment.

## Suggested scenes

| Area | Scenes |
| --- | --- |
| Basic solids | `Assets/Scenes/SolidsGeneration/CubeGeneration.unity`, `Assets/Scenes/SolidsGeneration/RectCuboidGeneration.unity` |
| Procedural objects | `Assets/Scenes/ObjectsGeneration/ProceduralCastle.unity`, `Assets/Scenes/ObjectsGeneration/Chest.unity`, `Assets/Scenes/ObjectsGeneration/Pumpkin.unity` |
| Mesh tools | `Assets/Scenes/MeshEditor.unity`, `Assets/Scenes/MeshSimplification.unity`, `Assets/Scenes/SVR19Prototype/MeshExtrusion.unity` |
| Other generators | `Assets/Scenes/CubeSphere.unity`, `Assets/Scenes/PCGRope.unity` |
| Shaders | `Assets/Scenes/ShaderExperiments/Circle.unity`, `Assets/Scenes/ShaderExperiments/RayMarching.unity`, `Assets/Scenes/Bubble.unity`, `Assets/Scenes/CircularDot.unity` |
| Standalone experiment | `Assets/Experiments/01_Eyes/Scene/01_Eyes.unity` |

## Repository layout

- `Assets/Experiments` — Prototype scenes, scripts, and assets for mesh generation.
- `Assets/Scripts` — Core runtime scripts and utilities.
- `Assets/Shaders` — Shader experiments and materials.
- `Assets/Scenes` — Unity scenes you can open directly.
- `Assets/Textures` / `Assets/Materials` — Supporting assets.
- `Assets/Scripts` — Mesh builders, generators, editor tools, and processing
experiments.
- `Assets/Scripts/MeshSimplification` — Random and vertex-distance-based mesh
simplification prototypes.
- `Assets/Scenes` — Sample scenes grouped by experiment where applicable.
- `Assets/Experiments` — Self-contained experiments with their own scenes and
assets.
- `Assets/Shaders` — ShaderLab shaders and shared `.cginc` files.
- `Assets/Material`, `Assets/Materials`, and `Assets/Textures` — Materials and
textures used by the samples.
- `Packages` — Unity Package Manager dependency declarations.
- `ProjectSettings` — Unity editor and project configuration.

## Project status

This is an experimental learning repository. APIs, scenes, and assets may change
without compatibility guarantees, and the examples have not been prepared or
validated for production use.

## Notes
## Contributing

This repository is intentionally lightweight; experiments may evolve quickly and
are not guaranteed to be production-ready.
Before proposing a change, read [CONTRIBUTING.md](CONTRIBUTING.md), including the
policy for automated and AI-assisted contributions.