Skip to content

Ravines are actually doable#3094

Open
careeoki wants to merge 1 commit into
PixelGuys:masterfrom
careeoki:ravine-2
Open

Ravines are actually doable#3094
careeoki wants to merge 1 commit into
PixelGuys:masterfrom
careeoki:ravine-2

Conversation

@careeoki

Copy link
Copy Markdown
Contributor

Ravines, now with rotation!
image
image

@ikabod-kee

Copy link
Copy Markdown
Collaborator

NO raymarching

@IntegratedQuantum

Copy link
Copy Markdown
Member

Have you considered using a chain of slightly randomly rotated cuboids to make it not a straight line?

@careeoki

Copy link
Copy Markdown
Contributor Author

Have you considered using a chain of slightly randomly rotated cuboids to make it not a straight line?

I haven't, but I'm not sure how to go about that.

@Crepestrom

Copy link
Copy Markdown
Contributor

It’s not exactly possible because rotations and offsets can’t stack so you cannot do the types of rotations needed

@IntegratedQuantum

IntegratedQuantum commented May 21, 2026

Copy link
Copy Markdown
Member

It is definitely possible, it's just a matter of how you combine cluster and rotation (note that it had some bugs, which were fixed in ebed6d5).

.{
			.id = "cubyz:rotated",
			.minAmount = 0.1,
			.maxAmount = 0.1,
			.axis = .z,
			.minAngle = 0,
			.maxAngle = 360,
			.mode = .subtractive,
			.child = .{
				.id = "cubyz:rotated",
				.minAmount = 1,
				.maxAmount = 1,
				.axis = .z,
				.minAngle = 0,
				.maxAngle = 360,
				.mode = .subtractive,
				.positionOffset = .{50, 0, 0},
				.child = .{
					.id = "cubyz:cluster",
					.children = .{
						.{
							.id = "cubyz:rectangular_cuboid",
							.minSideLengths = .{50, 16, 80},
							.maxSideLengths = .{50, 16, 80},
							.positionOffset = .{25, 0, 0},
						},
						.{
							.id = "cubyz:rotated",
							.minAmount = 1,
							.maxAmount = 1,
							.axis = .z,
							.minAngle = -20,
							.maxAngle = 20,
							.mode = .subtractive,
							.positionOffset = .{50, 0, 0},
							.child = .{
								.id = "cubyz:cluster",
								.children = .{
									.{
										.id = "cubyz:rectangular_cuboid",
										.minSideLengths = .{50, 16, 80},
										.maxSideLengths = .{50, 16, 80},
										.positionOffset = .{25, 0, 0},
									},
									.{
										.id = "cubyz:rotated",
										.minAmount = 1,
										.maxAmount = 1,
										.axis = .z,
										.minAngle = -20,
										.maxAngle = 20,
										.mode = .subtractive,
										.positionOffset = .{50, 0, 0},
										.child = .{
											.id = "cubyz:cluster",
											.children = .{
												.{
													.id = "cubyz:rectangular_cuboid",
													.minSideLengths = .{50, 16, 80},
													.maxSideLengths = .{50, 16, 80},
													.positionOffset = .{25, 0, 0},
												},
												.{
													.id = "cubyz:rotated",
													.minAmount = 1,
													.maxAmount = 1,
													.axis = .z,
													.minAngle = -20,
													.maxAngle = 20,
													.mode = .subtractive,
													.positionOffset = .{50, 0, 0},
													.child = .{
														.id = "cubyz:cluster",
														.children = .{
															.{
																.id = "cubyz:rectangular_cuboid",
																.minSideLengths = .{50, 16, 80},
																.maxSideLengths = .{50, 16, 80},
																.positionOffset = .{25, 0, 0},
															},
														},
													},
												},
											},
										},
									},
								},
							},
						},
					},
				},
			},
		},
Screenshot at 2026-05-21 08-06-01

But to be honest it is not ergonomic at all. I think we need some kind of path-based SDF that generates multiple copies of some SDF along a path.

@Wunka Wunka moved this to Easy to Review in PRs to review May 22, 2026
@IntegratedQuantum IntegratedQuantum moved this from Easy to Review to WIP/not ready for review in PRs to review May 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: WIP/not ready for review

Development

Successfully merging this pull request may close these issues.

5 participants