Skip to content

Add Layouts and renderFacade task - #200

Merged
pyrollo merged 2 commits into
mainfrom
zhak/facades_july
Oct 2, 2026
Merged

pyrollo merged 2 commits into
mainfrom
zhak/facades_july

Conversation

@zhak5388

@zhak5388 zhak5388 commented Jul 20, 2026 •

Copy link
Copy Markdown
Contributor

Changes

This PR adds layouts and a task to render facades.

Feature description

Layouts are a kind of structure that can resize itself to fit a requested space. Contrary to Structure, its size aren't fixed, it can stretch, be repeated to fill the available space.

With that we can define layouts and have building facades rendered dynamically.

The type of Layouts are:

  • Stretchable : it makes a structure stretchable by having one band per axis that gets repeated or ommited to fit the requested size.
  • Repeat: it repeats a another layout along a given axis.
  • Concatenate: it places several layout side by side.

Showcase

Capture d’écran du 2026-08-28 16-38-09

Reason

This adds more expressiveness on building rendering. Moreover with models values, we can have layout that are rendered depending on metadata, randomly..

TODOs

Left one TODO on full.yaml. Layout parameters can be very long, it could a good idea to define it elsewhere. (As it uses voxels defined on format, could be common.yaml file. But that is a detail.

Self-checks

  • The code has unit tests associated
  • The code has Javadoc Comments associated
  • Complex / Unexpected code is explained / justified with a small comment
  • Relevant documentation inside the /docs folder has been updated
  • All examples in examples/ work the same (or have been adapted if subject to changes in this PR)
  • Git history is clean (each commit accomplish a single task and describe it accordingly)
  • The texts have been proofread (documentation, error messages, logs, comments...)

TODOs

  • Reorg commits (squash, distribute, separate generate.sh update in a commit)

@github-actions

github-actions Bot commented Jul 20, 2026 •

Copy link
Copy Markdown

[Maven Build Status]

📑 Commit: 1f6754689af314417d23a2e7cb495deed62de808
⌚️ Date: 2026-10-02T16:21:42 (CEST)
🛠️ Status: ✅ Success

📦 Download artifact: Generator.jar

@zhak5388
zhak5388 marked this pull request as draft July 21, 2026 20:07
@zhak5388
zhak5388 force-pushed the zhak/facades_july branch from 0614713 to 645c300 Compare July 23, 2026 13:59
@zhak5388 zhak5388 changed the title WIP: LayoutBuilder single commit. Uncessary files removed. TODO: Fini… Add Layouts and renderFacade task Aug 28, 2026
@zhak5388
zhak5388 marked this pull request as ready for review August 28, 2026 17:03
@zhak5388

Copy link
Copy Markdown
Contributor Author

@pyrollo
This is the continuation of the previous work. I haven't changed much on the key features. It was mostly about improving the existing work. I have introduced the parameters that we decided last time.

I focused mainly on removing dead code, resolving or completing TODOs, and improving the algorithm used by concatenate (on PriorityRepartitionAxisMapperBuilder). I made a some decisions on the way, but nothing drastic. Comments usually explain the choices made (As it was usually on some edge cases).

Also I have added multiple unit tests as I have discovered some bugs onAxisMapperBuilders.

For the algorithm, in a nutshell, I have used I reused your approach and added a second phase for starved builders. This fixes 2 issues where space where not distributed evenly.

This work is now ready for a PR, and the documentation was done. It is no longer a work in progress. It is a bit unusual to open a PR at the end, hope you'll be able to take it from here (Although not a good time).

@indyteo indyteo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Il y a un "gros" rebase à faire aussi (cette branche a 15 commits de retard sur le main).

Bon au final ça fait énormément de commentaires mais une écrasante majorité est sur des fautes d'anglais, de frappe, ou de copié/collé ou renommage perdu en route... Donc il ne faut pas s'affoler, même si ça va encore probablement casser GitHub de faire autant de commentaires dans une même review 😅

Si jamais une simplification de code que j'ai proposé semble ne pas valoir le coup, demander trop de travail, ou ne pas fonctionner parce que j'avais oublié un détail, ne pas hésiter à juste ne pas la faire, on pourra toujours revenir dessus plus tard si ça s'avère nécessaire / pertinent.
Il y a notamment à plusieurs reprises des remarques sur des champs présents à l'identique dans toutes les implémentations de certaines interfaces. On peut tout à fait décider de laisser en l'état et de s'en occuper plus tard... ou pas.

Au final, il n'y a qu'une seule "grosse" remarque (enfin qui risque de demander vraiment du temps), c'est l'ajout d'exemples de layouts avec des illustrations dans le documentation. Pareillement, ça peut se faire dans une autre PR après, par exemple avec l'ajout des how-tos, ou une fois que le paramétrage aura été retravaillé et sera un peu plus définitif. Dans ce cas ne pas en tenir compte pour cette PR !

Comment thread docs/usage/parameters/Layout.md Outdated
Comment thread docs/usage/parameters/Layout.md Outdated
Comment thread docs/usage/parameters/Layout.md Outdated
Comment thread docs/usage/parameters/Layout.md Outdated
Comment thread docs/usage/parameters/Layout.md Outdated
Comment thread generate.sh Outdated
@pyrollo
pyrollo force-pushed the zhak/facades_july branch 7 times, most recently from feb1273 to 8c04233 Compare September 18, 2026 14:17
@zhak5388

zhak5388 commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor Author

Merci pour la relecture et d'avoir repris la PR : )

J'ai regardé à peu près tous les commentaires, mais comme GitHub est cassé, je mets les liens de mes commentaires:

Edit: J'avais pas vu le Delegate

@pyrollo
pyrollo force-pushed the zhak/facades_july branch 3 times, most recently from bfdfd52 to df2af65 Compare October 2, 2026 10:38
@pyrollo

pyrollo commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Comments resolved but we have a small bug:

Uploading screenshot_20261002_123939.png…

Roofs and façades are supposed to be at the same altitude.

@pyrollo
pyrollo force-pushed the zhak/facades_july branch from df2af65 to 2b3c5ff Compare October 2, 2026 12:20

@indyteo indyteo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dernière passe avant de pouvoir merger, les dernières typos et incohérences après renommages.
Le coup de l'AxisParams à fusionner c'est juste parce que je m'en suis rendu compte en relisant qu'on avait déjà un truc similaire ailleurs, mais si ça pose le moindre soucis de n'en garder qu'un, laisse tomber la remarque

Comment thread docs/usage/parameters/Layout.md
Comment thread docs/usage/parameters/Layout.md Outdated
Comment thread docs/usage/parameters/Layout.md Outdated
Comment thread docs/usage/parameters/Layout.md Outdated
Comment thread docs/usage/parameters/TileTasks.md Outdated
@pyrollo
pyrollo force-pushed the zhak/facades_july branch 2 times, most recently from 4abdc6b to 1af5f1e Compare October 2, 2026 14:10
zhak5388 and others added 2 commits October 2, 2026 16:20
Co-authored-by: Pierre-Yves Rollo <dev@pyrollo.com>
Co-authored-by: Pierre-Yves Rollo <dev@pyrollo.com>
@pyrollo
pyrollo force-pushed the zhak/facades_july branch from 1af5f1e to 1f67546 Compare October 2, 2026 14:21

@indyteo indyteo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Et une bonne chose de faite !

@pyrollo
pyrollo merged commit 635944a into main Oct 2, 2026
13 checks passed
@pyrollo
pyrollo deleted the zhak/facades_july branch October 2, 2026 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants