From e3b66772f889be51f6f1de91e54069891368e978 Mon Sep 17 00:00:00 2001 From: Mohamed Soudy Date: Sat, 18 Feb 2017 00:24:36 -0500 Subject: [PATCH 1/2] Completed Project 4 --- README.md | 49 ++---- deploy.js | 38 +++++ images/.DS_Store | Bin 0 -> 6148 bytes images/sunset.jpg | Bin 0 -> 121718 bytes index.html | 19 +++ package.json | 34 +++++ shapes/.DS_Store | Bin 0 -> 6148 bytes shapes/base1.obj | 59 ++++++++ shapes/base2.obj | 59 ++++++++ shapes/base3.obj | 59 ++++++++ shapes/roof1.obj | 42 ++++++ shapes/roof2.obj | 79 ++++++++++ shapes/roof3.obj | 53 +++++++ src/.DS_Store | Bin 0 -> 6148 bytes src/city.js | 188 +++++++++++++++++++++++ src/framework.js | 73 +++++++++ src/main.js | 164 ++++++++++++++++++++ src/shapeGrammar.js | 354 ++++++++++++++++++++++++++++++++++++++++++++ webpack.config.js | 28 ++++ 19 files changed, 1259 insertions(+), 39 deletions(-) create mode 100644 deploy.js create mode 100644 images/.DS_Store create mode 100644 images/sunset.jpg create mode 100644 index.html create mode 100644 package.json create mode 100644 shapes/.DS_Store create mode 100644 shapes/base1.obj create mode 100644 shapes/base2.obj create mode 100644 shapes/base3.obj create mode 100644 shapes/roof1.obj create mode 100644 shapes/roof2.obj create mode 100644 shapes/roof3.obj create mode 100644 src/.DS_Store create mode 100644 src/city.js create mode 100644 src/framework.js create mode 100644 src/main.js create mode 100644 src/shapeGrammar.js create mode 100644 webpack.config.js diff --git a/README.md b/README.md index fad423fa..e6e43931 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,16 @@ +# [Project 4: Shape Grammar](https://github.com/CIS700-Procedural-Graphics/Project4-Shape-Grammar) -# Project 4: Shape Grammar -For this assignment you'll be building directly off of Project 3. To make things easier to keep track of, please fork and clone this repository [https://github.com/CIS700-Procedural-Graphics/Project4-Shape-Grammar](https://github.com/CIS700-Procedural-Graphics/Project4-Shape-Grammar) and copy your Project 3 code to start. +Created a procedural city using Shape grammars. Road map of city is first generated using a uniform radial approach creating circular main roads. Minor roads are also added to connect main roads. -**Goal:** to model an urban environment using a shape grammar. +The size and color of the buildings are dependent on the distance from the center of city. Buildings get smaller as you get closer to the center and the color palette used for the roofs of the buildings changes between every main road. -**Note:** We’re well aware that a nice-looking procedural city is a lot of work for a single week. Focus on designing a nice building grammar. The city layout strategies outlined in class (the extended l-systems) are complex and not expected. We will be satisfied with something reasonably simple, just not a uniform grid! +Grammar Rules for Building (ordered by priority): -## Symbol Node (5 points) -Modify your symbol node class to include attributes necessary for rendering, such as -- Associated geometry instance -- Position -- Scale -- Anything else you may need +1. Scale Rule - Scale shape along X, Y or Z axis +2. Rotate Rule - Rotate shape along X, Y or Z axis +3. Translate Rule - Translate shape along X, Y or Z axis +4. Roof Rule - Add roof to shape +5. Subdivide Rule - Subdivides shape along X, Y or Z axis +6. Windows Rule - Add window to shape -## Grammar design (55 points) -- Design at least five shape grammar rules for producing procedural buildings. Your buildings should vary in geometry and decorative features (beyond just differently-scaled cubes!). At least some of your rules should create child geometry that is in some way dependent on its parent’s state. (20 points) - - Eg. A building may be subdivided along the x, y, or z axis into two smaller buildings - - Some of your rules must be designed to use some property about its location. (10 points) - - Your grammar should have some element of variation so your buildings are non-deterministic. Eg. your buildings sometimes subdivide along the x axis, and sometimes the y. (10 points) -- Write a renderer that will interpret the results of your shape grammar parser and adds the appropriate geometry to your scene for each symbol in your set. (10 points) - -## Create a city (30 points) -- Add a ground plane or some other base terrain to your scene (0 points, come on now) -- Using any strategy you’d like, procedurally generate features that demarcate your city into different areas in an interesting and plausible way (Just a uniform grid is neither interesting nor plausible). (20 points) - - Suggestions: roads, rivers, lakes, parks, high-population density - - Note, these features don’t have to be directly visible, like high-population density, but they should somehow be visible in the appearance or arrangement of your buildings. Eg. High population density is more likely to generate taller buildings -- Generate buildings throughout your city, using information about your city’s features. Color your buildings with a method that uses some aspect of its state. Eg. Color buildings by height, by population density, by number of rules used to generate it. (5 points) -- Document your grammar rules and general approach in the readme. (5 points) -- ??? -- Profit. - -## Make it interesting (10) -Experiment! Make your city a work of art. - - -## Warnings: -You can very easily blow up three.js with this assignment. With a very simple grammar, our medium quality machine was able to handle 100 buildings with 6 generations each, but be careful if you’re doing this all CPU-side. - -## Suggestions for the overachievers: -Go for a very high level of decorative detail! -Place buildings with a strategy such that buildings have doors and windows that are always accessible. -Generate buildings with coherent interiors -If dividing your city into lots, generate odd-shaped lots and create building meshes that match their shape ie. rather than working with cubes, extrude upwards from the building footprints you find to generate a starting mesh to subdivide rather than starting with platonic geometry. diff --git a/deploy.js b/deploy.js new file mode 100644 index 00000000..9defe7c3 --- /dev/null +++ b/deploy.js @@ -0,0 +1,38 @@ +var colors = require('colors'); +var path = require('path'); +var git = require('simple-git')(__dirname); +var deploy = require('gh-pages-deploy'); +var packageJSON = require('require-module')('./package.json'); + +var success = 1; +git.fetch('origin', 'master', function(err) { + if (err) throw err; + git.status(function(err, status) { + if (err) throw err; + if (!status.isClean()) { + success = 0; + console.error('Error: You have uncommitted changes! Please commit them first'.red); + } + + if (status.current !== 'master') { + success = 0; + console.warn('Warning: Please deploy from the master branch!'.yellow) + } + + git.diffSummary(['origin/master'], function(err, diff) { + if (err) throw err; + + if (diff.files.length || diff.insertions || diff.deletions) { + success = 0; + console.error('Error: Current branch is different from origin/master! Please push all changes first'.red) + } + + if (success) { + var cfg = packageJSON['gh-pages-deploy'] || {}; + var buildCmd = deploy.getFullCmd(cfg); + deploy.displayCmds(deploy.getFullCmd(cfg)); + deploy.execBuild(buildCmd, cfg); + } + }) + }) +}) \ No newline at end of file diff --git a/images/.DS_Store b/images/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 00000000..c548372b --- /dev/null +++ b/index.html @@ -0,0 +1,19 @@ + + + + HW4: Shape Grammars + + + + + + diff --git a/package.json b/package.json new file mode 100644 index 00000000..488fced9 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "scripts": { + "start": "webpack-dev-server --hot --inline", + "build": "webpack", + "deploy": "node deploy.js" + }, + "gh-pages-deploy": { + "prep": [ + "build" + ], + "noprompt": true + }, + "dependencies": { + "dat-gui": "^0.5.0", + "gl-matrix": "^2.3.2", + "stats-js": "^1.0.0-alpha1", + "three": "^0.82.1", + "three-orbit-controls": "^82.1.0", + "three-obj-loader": "^1.0.2", + "jquery": "^2.2.4", + "three.meshline": "^1.0.3" + }, + "devDependencies": { + "babel-core": "^6.18.2", + "babel-loader": "^6.2.8", + "babel-preset-es2015": "^6.18.0", + "colors": "^1.1.2", + "gh-pages-deploy": "^0.4.2", + "simple-git": "^1.65.0", + "webpack": "^1.13.3", + "webpack-dev-server": "^1.16.2", + "webpack-glsl-loader": "^1.0.1" + } +} diff --git a/shapes/.DS_Store b/shapes/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 -1; + if (!result) + shapeList.push(shape); + + if (i < shapeNames.length-1) + loadShapes(shapeNames, i+1, shapeList, shapeGeometry, scene, pos) + + else { + + + var city = new City(); + city.shapes = shapeList; + city.buildingGeometry = shapeGeometry; + city.buildingIterations = config.buildingIterations; + var ob = city.doIterations(config.cityIterations, 5); + scene.add(ob); + + + //FOR DEBUGGING + /*var shapeGrammar = new ShapeGrammar(); + shapeGrammar.shapes = shapeList; + + var all = renderShapes(shapeGrammar.doIterations(6), shapeGeometry, [0,0,0]); + scene.add(all);*/ + + } + + }); + +} + + +//FOR DEBUGGING +function renderShapes(shapes, geometry, offset) { + + var lambertGray = new THREE.MeshLambertMaterial({ color: 0x555555, side: THREE.DoubleSide }); + + var sceneShapes = new THREE.Object3D(); + var singleGeometry = new THREE.Geometry(); + //console.log(shapes.length); + + for (var i = 0; i < shapes.length; i++) { + + var s = shapes[i]; + lambertGray = new THREE.MeshLambertMaterial({ color: 0x555555, side: THREE.DoubleSide }); + //lambertGray.wireframe = true; + //console.log(s.position); + //var shapeGeo = obj.children[0].geometry; + var shapeGeo = geometry[s.geometry]; + var shapeMesh = new THREE.Mesh(shapeGeo, lambertGray); + //var shapeMesh = geometry.children[s.geometry]; + //console.log(s.rotation); + shapeMesh.scale.set(s.scale[0],s.scale[1],s.scale[2]); + shapeMesh.position.set(s.position[0]+offset[0],s.position[1]+offset[1],s.position[2]+offset[2]); + shapeMesh.rotation.set(s.rotation[0],s.rotation[1],s.rotation[2]); + //shapeMesh.name = "roof1"; + //console.log(shapeMesh); + shapeMesh.updateMatrix(); + //singleGeometry.merge(shapeMesh.geometry, shapeMesh.matrix); + shapeMesh.material.color.setHex( s.color ); + sceneShapes.add(shapeMesh); + + } + + return sceneShapes; + +} + +// called on frame updates +function onUpdate(framework) {} + +// when the scene is done initializing, it will call onLoad, then on frame updates, call onUpdate +Framework.init(onLoad, onUpdate); diff --git a/src/shapeGrammar.js b/src/shapeGrammar.js new file mode 100644 index 00000000..82d09a7e --- /dev/null +++ b/src/shapeGrammar.js @@ -0,0 +1,354 @@ +const THREE = require('three'); +const $ = require("jquery"); + +var allRoofsColor = 0x1B5E9B; +var globalPos = [0,0,0]; +var globalRadius = 0; + +function Rule(ruleType, succ) { + this.type = ruleType; + this.predecessor = "*"; + this.cond = null; + //this.probability = prob; + this.successor = succ; + this.priority = 10; +} + +export function Shape(shapeSymbol) { + this.symbol = shapeSymbol; + this.geometry = -1; + this.position = [0,0,0]; + this.rotation = [0,0,0]; + this.scale = [1,1,1]; + this.terminal = false; + this.dimensions = []; + this.applicableRules = []; + this.color = 0xFFFFFF; +} + + +function subdivide(shape, rule) { + + + //var params = rule.successor.match(/ *\([^)]*\) */g); //save params + + //subdivide rule + //console.log(rule.successor); + var re = /([A-Za-z]):(\d+\.?\d*)/; // X:0.5 + var symbolParams = rule.successor.match(re); //get params + var successors = []; + var axis = symbolParams[1]; + var numDivision = symbolParams[2]; + + var index = 0; + + switch(axis) { + case 'X': + index = 0; + break; + case 'Y': + index = 1; + break; + case 'Z': + index = 2; + break; + default: + return [shape]; + break; + } + + //console.log(shape.dimensions); + for (var i = 0; i < numDivision; i++) { + + var newObject = $.extend(true, {}, shape); + //newObject.scale = newObject.scale.map(function(x) { return x/2.0; }); + newObject.scale[index] /= numDivision; + newObject.position[index] -= (shape.dimensions[index]*shape.scale[index] - newObject.dimensions[index]*newObject.scale[index]) / 2.0; + newObject.position[index] += (shape.dimensions[index]*shape.scale[index]/numDivision) * i; + newObject.terminal = false; + successors.push(newObject); + + } + + return successors; +} + + +function addRoofs(shape, rule) { + + var successors = [shape]; + + var newObject = $.extend(true, {}, shape); + newObject.symbol = "roof" + shape.symbol.charAt(4) + ".obj"; + newObject.geometry = parseInt(shape.symbol.charAt(4))+2; + newObject.terminal = false; + + var colors2 = [0xCFC096,0x4A741F, 0x1E3B01,0x2A1C0F,0x292B33]; //jg + var colors3 = [0xC7C7C7,0xBFFFCE,0xF6E94A,0x344317,0x478116]; //plf + var colors4 = [0xFF4823,0xFFFF86,0xB1EB8A,0x66B37B,0x029171]; //p + var colors5 = [0x314841,0x8B8B65,0xFFCB7C,0xFF8437,0xF33616]; //os + + + switch(globalRadius) { + case 10: + newObject.color = colors2[getRandomInt(0,4)]; + break; + case 20: + newObject.color = colors3[getRandomInt(0,4)]; + break; + case 30: + newObject.color = colors4[getRandomInt(0,4)]; + break; + case 40: + newObject.color = colors5[getRandomInt(0,4)]; + break; + default: + newObject.color = colors2[getRandomInt(0,4)]; + } + + successors.push(newObject); + + return successors; +} + + +function addWindows(shape, rule) { + + var side = -1; + + if (rule.successor == '+') { + side = 1; + } + + var successors = [shape]; + + var newObject = $.extend(true, {}, shape); + //newObject.scale = newObject.scale.map(function(x) { return x/2.0; }); + newObject.scale[2] /= 3.0; + newObject.scale[0] /= 3.0; + newObject.scale[1] /= 4.0; + //newObject.scale = newObject.scale.map(function(x) { return x/6.0; }); + newObject.position[1] += shape.dimensions[1]/3.0 * 1.5; + + if (newObject.position[0] >= 0) { + newObject.position[0] += shape.dimensions[0]*shape.scale[0]/2.3 * side; + } else + newObject.position[0] -= shape.dimensions[0]*shape.scale[0]/2.3 * side; + newObject.rotation = [0,Math.PI/2,0]; + newObject.terminal = false; + newObject.color = 0x000000; + + successors.push(newObject); + + return successors; +} + +function scaleShape(shape, rule) { + + var re = /([A-Za-z]):(\d+\.?\d*),([A-Za-z]):(\d+\.?\d*),([A-Za-z]):(\d+\.?\d*)/; + var symbolParams = rule.successor.match(re); //get params + + var newObject = $.extend(true, {}, shape); + + newObject.scale[0] *= parseFloat(symbolParams[2]); + newObject.scale[1] *= parseFloat(symbolParams[4]); + newObject.scale[2] *= parseFloat(symbolParams[6]); + + return [newObject]; +} + + +function translateShape(shape, rule) { + + var re = /([A-Za-z]):([+-]?\d+\.?\d*),([A-Za-z]):([+-]?\d+\.?\d*),([A-Za-z]):([+-]?\d+\.?\d*)/; + var symbolParams = rule.successor.match(re); //get params + //sconsole.log(symbolParams); + + var newObject = $.extend(true, {}, shape); + + newObject.position[0] += parseFloat(symbolParams[2]); + newObject.position[1] += parseFloat(symbolParams[4]); + newObject.position[2] += parseFloat(symbolParams[6]); + + return [newObject]; +} + + +function rotateShape(shape, rule) { + + var re = /([A-Za-z]):([+-]?\d+\.?\d*)/; // X:0.5 + var symbolParams = rule.successor.match(re); //get params + //console.log(symbolParams); + + var newObject = $.extend(true, {}, shape); + + newObject.rotation[1] += parseFloat(symbolParams[2]); + + return [newObject]; + +} + + +function applyRandomRule(shape, rules, rule_priority) { + + + + for (var i in rules) { + + var rule = rules[i]; + + if ((rule.priority == 1) && (rule_priority == 1)) { + return scaleShape(shape,rule); + } else if ((rule.priority == 2) && (rule_priority == 2)) { + return rotateShape(shape,rule); + }else if ((rule.priority == 3) && (rule_priority == 3)) { + return translateShape(shape,rule); + }else if ((rule.priority == 4) && (rule_priority == 4)) { + return addRoofs(shape,rule); + }else if ((rule.priority == 5) && (rule_priority == 5)) { + return subdivide(shape,rule); + }else if ((rule.priority == 6) && (rule_priority == 6)) { + return addWindows(shape,rule); + } + + + } + + //for every rule check if its predecessor matches the shape, if so, apply the rule + +} + +function clamp(num, min, max) { + return num <= min ? min : num >= max ? max : num; +} + +function getRandomInt(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; +} + + +export function generateRules(i) { + + var rules = []; + + var posFactor = Math.max(Math.abs(globalPos[0])/30,Math.abs(globalPos[2])/30); + + var sx = 0.5 * clamp(posFactor, 1.0, 1.3); + var sy = 1 + (Math.random()/2*i) * posFactor;//Math.random()+1; + var sz = Math.random()/2+1 * clamp(posFactor, 1.0, 1.3);//Math.random()+1; + + var scaleRule = new Rule(0, 'X:'+ sx + + ',Y:' + sy + + ',Z:' + sz); + scaleRule.priority = 1; + rules.push(scaleRule); + + //var ry = getRandomInt(0,4)/2.0 * Math.PI; + var ry = 1.0/2.0 * Math.PI * i; + //console.log(ry); + var rotateRule = new Rule(1, 'Y:' + ry); + rotateRule.priority = 2; + rules.push(rotateRule); + + var rx = 0.0; + var rz = 0.0; + var axis = 'Z'; + + if (i % 3 == 0) { + + //rx += Math.random() > 0.5 ? 0.5 : -0.5; + rx += 0.5; + + } else if (i % 3 == 1) { + + rz += Math.random() > 0.5 ? 0.5 : -0.5; + } else if (i % 3 == 2) { + + rx -= 0.5; + axis = 'D'; + //rx += 0.5; + } + +// var rx = (Math.random()-0.5) * 2.0; +// var rz = (Math.random()-0.5) * 2.0; + + var translateRule = new Rule(2, 'X:' + rx + ',Y:0.0,Z:' + rz); + //console.log(translateRule); + translateRule.priority = 3; + rules.push(translateRule); + + var roofRule = new Rule(3, '1'); + roofRule.priority = 4; + rules.push(roofRule); + + + var subdivRule = new Rule(4, axis + ':' + getRandomInt(3, 5)); + subdivRule.priority = 5; + rules.push(subdivRule); + + var windowRule = new Rule(5, '+'); + windowRule.priority = 6; + rules.push(windowRule); + + return rules; +} + +function parseShapeGrammar(shapes, rules, iterations) { + + //var newShapeList = []; + for (var i = 0; i < iterations; i++) { + //console.log(shapes); + for (var j = shapes.length - 1; j >= 0; j--) { + + var shape = shapes[j]; + + var result = shape.symbol.indexOf("roof") > -1; + if (result) + continue; + + rules = generateRules(j); + if (!shape.terminal) { + + var successors = applyRandomRule(shape, rules, i+1); + shapes = shapes.concat(successors); + //console.log(successors); + + var index = shapes.indexOf(shape); + //console.log(index); + if (index > -1) { + shapes.splice(index, 1); + } + + } + + } + + } + + return shapes; +} + + +export default function ShapeGrammar(axiom, grammar, iterations) { + + this.rules = generateRules(); + this.shapes = []; + this.position = [0,0,0]; + this.cityRadius = 0; + + this.doIterations = function(n) { + + //var colors = [0x1B5E9B,0x1B9044,0xBB8319,0xAB342D,0x5D6168]; + var colors2 = [0xCFC096,0x4A741F, 0x1E3B01,0x2A1C0F,0x292B33]; //jg + var colors3 = [0xC7C7C7,0xBFFFCE,0xF6E94A,0x344317,0x478116]; //plf + var colors4 = [0xFF4823,0xFFFF86,0xB1EB8A,0x66B37B,0x029171]; //p + var colors5 = [0x314841,0x8B8B65,0xFFCB7C,0xFF8437,0xF33616]; //os + allRoofsColor = colors2[getRandomInt(0,4)]; + globalPos = this.position; + globalRadius = this.cityRadius; + + var num = Math.random() > 0.5 ? 1 : 3; + var s = this.shapes.slice(0, num); + return parseShapeGrammar(s, this.rules, n); + } +} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 00000000..57dce485 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,28 @@ +const path = require('path'); + +module.exports = { + entry: path.join(__dirname, "src/main"), + output: { + filename: "./bundle.js" + }, + module: { + loaders: [ + { + test: /\.js$/, + exclude: /(node_modules|bower_components)/, + loader: 'babel', + query: { + presets: ['es2015'] + } + }, + { + test: /\.glsl$/, + loader: "webpack-glsl" + }, + ] + }, + devtool: 'source-map', + devServer: { + port: 7000 + } +} \ No newline at end of file From a93e62c52ebe6d9dde983213fe12eb7a04ad93e9 Mon Sep 17 00:00:00 2001 From: Mohamed Soudy Date: Sat, 18 Feb 2017 00:27:24 -0500 Subject: [PATCH 2/2] gitignore file added --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2f6141d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +npm-debug.log +.DS_Store \ No newline at end of file