Around The World, Part 9: Climate - determining Köppen climate classes of procgen worlds (and of Earth)
https://frozenfractal.com/blog/2023/12/29/around-the-world-9-climates/
https://redd.it/18ti5af
@proceduralgeneration
https://frozenfractal.com/blog/2023/12/29/around-the-world-9-climates/
https://redd.it/18ti5af
@proceduralgeneration
Frozenfractal
Around The World, Part 9: Climate
Last time, I described how I’m generating different weather patterns based on the season. That data is already useful for the game, to decide the weather at one particular place and time, but it’s also essential when figuring out the local biome, which is…
This media is not supported in your browser
VIEW IN TELEGRAM
Realistic Ocean Simulation Week 10: Generated normal maps and ocean mesh. Currently, running DFT with 16284 distinct frequencies (Small amount).
https://redd.it/18t48no
@proceduralgeneration
https://redd.it/18t48no
@proceduralgeneration
Houdini | Procedural Tool to Art Direct Your Instances With VEX! (Part 3)
https://youtu.be/yGjSP7CGioM
https://redd.it/18thi5v
@proceduralgeneration
https://youtu.be/yGjSP7CGioM
https://redd.it/18thi5v
@proceduralgeneration
YouTube
Houdini VEX | Procedural Tool to Art Direct Your Instances! (Part 3)
Returning to a previous post, I've taken the initiative to develop an enhanced Toolset that enables efficient Art Directing of Instances, applicable across multiple shots in a production sequence by reusing variations of any caches. My aim was to develop…
Games with a lot of procedural content
Hi! Is any games that generates a lot of content procedurally? Not only map or dungeons. I mean random/procedural NPCs, divines, mythology, lore, quests, races, etc.
I know, Dwarf Fortress and Wizards and Warlords can do some of that.
https://redd.it/18w5h0j
@proceduralgeneration
Hi! Is any games that generates a lot of content procedurally? Not only map or dungeons. I mean random/procedural NPCs, divines, mythology, lore, quests, races, etc.
I know, Dwarf Fortress and Wizards and Warlords can do some of that.
https://redd.it/18w5h0j
@proceduralgeneration
Reddit
From the proceduralgeneration community on Reddit
Explore this post and more from the proceduralgeneration community
O Christmas Tree Synth Version
https://youtube.com/watch?v=Pe7Cda695jE&si=XTX6kUqRu5sZ05md
https://redd.it/18t4mtp
@proceduralgeneration
https://youtube.com/watch?v=Pe7Cda695jE&si=XTX6kUqRu5sZ05md
https://redd.it/18t4mtp
@proceduralgeneration
YouTube
O Christmas Tree Synth Version
One of my favorite Christmas carols, synthesized with my two Moogs, Mother32 and DFAM.
#moog #synth #synthesizer #christmas #carol #mother32 #dfam
#moog #synth #synthesizer #christmas #carol #mother32 #dfam
What algorithm would work best for rigid stepped elevations, while having smooth portions.
Wow, that's a long title! But it basically describes exactly what I'm looking for. I had previously been using fractal noise with octaves in order to create terrain, and this worked very well for things such as large "relatively smooth / flat" areas of land mass.
However I am wondering what algorithm would work best to incorporate rocky formations or ridges on top of these smooth portions. Sort of like a step elevation.
Below are a few pictures which represent what I'm attempting to achieve. Thanks for your time! :)
​
Ridges and a sort of \\"step\\" elevation
Rocky Formations, etc...
https://redd.it/18sljn1
@proceduralgeneration
Wow, that's a long title! But it basically describes exactly what I'm looking for. I had previously been using fractal noise with octaves in order to create terrain, and this worked very well for things such as large "relatively smooth / flat" areas of land mass.
However I am wondering what algorithm would work best to incorporate rocky formations or ridges on top of these smooth portions. Sort of like a step elevation.
Below are a few pictures which represent what I'm attempting to achieve. Thanks for your time! :)
​
Ridges and a sort of \\"step\\" elevation
Rocky Formations, etc...
https://redd.it/18sljn1
@proceduralgeneration
Voxel Game it features produceral world generation!
https://youtu.be/Ur4dUX2YoFg
https://redd.it/18wbd46
@proceduralgeneration
https://youtu.be/Ur4dUX2YoFg
https://redd.it/18wbd46
@proceduralgeneration
YouTube
I'm Releasing my Voxel Game as Early Access!
You can download the voxel game on Patreon! there are 2 posts. one is for the full version and the second is the free access version.
After some feedback, game will be full access for everyone for next release. Cheers!
Patreon: https://patreon.com/_rey
Follow…
After some feedback, game will be full access for everyone for next release. Cheers!
Patreon: https://patreon.com/_rey
Follow…
more voronoi trouble...why are some cell walls not extending to their circumcenter?
if you have seen some of my other posts, you know i am working on developing a voronoi based city using threejs. I am taking a different approach now, utilizing the [delaunator npm package](https://github.com/mapbox/delaunator) to detect circumcenters, and then connect them to form the cell walls.
i have spent all day trying to figure out why some of these walls are not reaching their end points (see image below)
https://preview.redd.it/lhfb5807jy8c1.png?width=1615&format=png&auto=webp&s=f0a5e33b4731558ba6ca69fe4916d3a04cd003e7
here is my script. any ideas what is causing this problem? thank you
import Delaunator from "delaunator";
import * as THREE from "three";
import { _math } from "../_/math";
export const getVertexData = (x: number, y: number) => {
const gridSize = 100; //500?
const roadWidth = 5;
const currentGrid = [Math.floor(x / gridSize), Math.floor(y / gridSize)];
var points = [];
for (let ix = currentGrid[0] - 1; ix <= currentGrid[0] + 1; ix++) {
for (let iy = currentGrid[1] - 1; iy <= currentGrid[1] + 1; iy++) {
var pointX = _math.seed_rand(ix + "X" + iy);
var pointY = _math.seed_rand(ix + "Y" + iy);
var point = new THREE.Vector3(
(ix + pointX) * gridSize,
(iy + pointY) * gridSize,
0
);
points.push(point);
}
}
var currentVertex = new THREE.Vector3(x, y, 0);
const delaunay = Delaunator.from(points.map((point) => [point.x, point.y]));
const circumcenters = [];
for (let i = 0; i < delaunay.triangles.length; i += 3) {
const a = points[delaunay.triangles[i]];
const b = points[delaunay.triangles[i + 1]];
const c = points[delaunay.triangles[i + 2]];
const ad = a.x * a.x + a.y * a.y;
const bd = b.x * b.x + b.y * b.y;
const cd = c.x * c.x + c.y * c.y;
const D = 2 * (a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y));
const circumcenter = new THREE.Vector3(
(1 / D) * (ad * (b.y - c.y) + bd * (c.y - a.y) + cd * (a.y - b.y)),
(1 / D) * (ad * (c.x - b.x) + bd * (a.x - c.x) + cd * (b.x - a.x)),
0
);
circumcenters.push(circumcenter);
}
const voronoiWalls = [];
for (let i = 0; i < delaunay.halfedges.length; i++) {
const edge = delaunay.halfedges[i];
if (edge !== -1) {
const v1 = circumcenters[Math.floor(i / 3)];
const v2 = circumcenters[Math.floor(edge / 3)];
if (v1 && v2) voronoiWalls.push(new THREE.Line3(v1, v2));
}
}
for (let i = 0; i < voronoiWalls.length; i++) {
var closestPoint = new THREE.Vector3(0, 0, 0);
voronoiWalls[i].closestPointToPoint(currentVertex, true, closestPoint);
if (currentVertex.distanceTo(closestPoint) <= roadWidth) return "road";
}
return "block";
};
Edit: i have confirmed that the circumcenters are in the correct spots. i think this may have something to do with the voronoiWall calculations...having a bit of trouble understanding the delaunator plugin. Here are the docs i've been trying to follow: [https://mapbox.github.io/delaunator/#incoming-edge-index](https://mapbox.github.io/delaunator/#incoming-edge-index)
https://redd.it/18sk7jv
@proceduralgeneration
if you have seen some of my other posts, you know i am working on developing a voronoi based city using threejs. I am taking a different approach now, utilizing the [delaunator npm package](https://github.com/mapbox/delaunator) to detect circumcenters, and then connect them to form the cell walls.
i have spent all day trying to figure out why some of these walls are not reaching their end points (see image below)
https://preview.redd.it/lhfb5807jy8c1.png?width=1615&format=png&auto=webp&s=f0a5e33b4731558ba6ca69fe4916d3a04cd003e7
here is my script. any ideas what is causing this problem? thank you
import Delaunator from "delaunator";
import * as THREE from "three";
import { _math } from "../_/math";
export const getVertexData = (x: number, y: number) => {
const gridSize = 100; //500?
const roadWidth = 5;
const currentGrid = [Math.floor(x / gridSize), Math.floor(y / gridSize)];
var points = [];
for (let ix = currentGrid[0] - 1; ix <= currentGrid[0] + 1; ix++) {
for (let iy = currentGrid[1] - 1; iy <= currentGrid[1] + 1; iy++) {
var pointX = _math.seed_rand(ix + "X" + iy);
var pointY = _math.seed_rand(ix + "Y" + iy);
var point = new THREE.Vector3(
(ix + pointX) * gridSize,
(iy + pointY) * gridSize,
0
);
points.push(point);
}
}
var currentVertex = new THREE.Vector3(x, y, 0);
const delaunay = Delaunator.from(points.map((point) => [point.x, point.y]));
const circumcenters = [];
for (let i = 0; i < delaunay.triangles.length; i += 3) {
const a = points[delaunay.triangles[i]];
const b = points[delaunay.triangles[i + 1]];
const c = points[delaunay.triangles[i + 2]];
const ad = a.x * a.x + a.y * a.y;
const bd = b.x * b.x + b.y * b.y;
const cd = c.x * c.x + c.y * c.y;
const D = 2 * (a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y));
const circumcenter = new THREE.Vector3(
(1 / D) * (ad * (b.y - c.y) + bd * (c.y - a.y) + cd * (a.y - b.y)),
(1 / D) * (ad * (c.x - b.x) + bd * (a.x - c.x) + cd * (b.x - a.x)),
0
);
circumcenters.push(circumcenter);
}
const voronoiWalls = [];
for (let i = 0; i < delaunay.halfedges.length; i++) {
const edge = delaunay.halfedges[i];
if (edge !== -1) {
const v1 = circumcenters[Math.floor(i / 3)];
const v2 = circumcenters[Math.floor(edge / 3)];
if (v1 && v2) voronoiWalls.push(new THREE.Line3(v1, v2));
}
}
for (let i = 0; i < voronoiWalls.length; i++) {
var closestPoint = new THREE.Vector3(0, 0, 0);
voronoiWalls[i].closestPointToPoint(currentVertex, true, closestPoint);
if (currentVertex.distanceTo(closestPoint) <= roadWidth) return "road";
}
return "block";
};
Edit: i have confirmed that the circumcenters are in the correct spots. i think this may have something to do with the voronoiWall calculations...having a bit of trouble understanding the delaunator plugin. Here are the docs i've been trying to follow: [https://mapbox.github.io/delaunator/#incoming-edge-index](https://mapbox.github.io/delaunator/#incoming-edge-index)
https://redd.it/18sk7jv
@proceduralgeneration
GitHub
GitHub - mapbox/delaunator: An incredibly fast JavaScript library for Delaunay triangulation of 2D points
An incredibly fast JavaScript library for Delaunay triangulation of 2D points - mapbox/delaunator
Nightmare creatures (wip)
https://www.reddit.com/gallery/18whch5
https://redd.it/18whdqo
@proceduralgeneration
https://www.reddit.com/gallery/18whch5
https://redd.it/18whdqo
@proceduralgeneration
I have been working on a procgen dungeon maker and I have no idea what I am doing.
I am not exactly sure what I am doing wrong. Wvwry time I think I am getting close, my logic in the code just goes bonkers. It always overlaps no matter what I do! The rooms always overlap each other. I'm aware this is a learning curve kind of thing. Does anyone have a good tutorial/guide for the coding algorithm needed for procgen to work with room prefabs and specific door locations per room?
https://redd.it/18wnoju
@proceduralgeneration
I am not exactly sure what I am doing wrong. Wvwry time I think I am getting close, my logic in the code just goes bonkers. It always overlaps no matter what I do! The rooms always overlap each other. I'm aware this is a learning curve kind of thing. Does anyone have a good tutorial/guide for the coding algorithm needed for procgen to work with room prefabs and specific door locations per room?
https://redd.it/18wnoju
@proceduralgeneration
Reddit
From the proceduralgeneration community on Reddit
Explore this post and more from the proceduralgeneration community
My Proc-Gen Industrial Pipework Experiments
https://forums.apparance.uk/t/industrial-pipework/158
https://redd.it/18wn8yn
@proceduralgeneration
https://forums.apparance.uk/t/industrial-pipework/158
https://redd.it/18wn8yn
@proceduralgeneration
Apparance Forums
Industrial Pipework
I’d like to share some info on the procedural pipework I’ve been working on. This stems from a desire to start building complicated industrial facilities that a game idea I have will need. I’ll go into some of the details below, and then in another thread…
Around The World, Part 10: Fixing the climate - Making deserts go away and come back again
https://frozenfractal.com/blog/2024/1/2/around-the-world-10-fixing-the-climate/
https://redd.it/18womd1
@proceduralgeneration
https://frozenfractal.com/blog/2024/1/2/around-the-world-10-fixing-the-climate/
https://redd.it/18womd1
@proceduralgeneration
Frozenfractal
Around The World, Part 10: Fixing the climate
The previous post ended with a cliffhanger: how would we get rid of all the arid zones (pink) in the Köppen climate classification? An alternating game of spot-the-difference and whack-a-mole ensues.