Connected Living — Shared Economies

Thoughts.Ideas.You
Data Mining the City
3 min readNov 13, 2019
Social isolation is a fast growing epidemic today, it has been recognized to have physical, mental and consequences.

ARGUMENT : To Manipulate and optimize the spatial qualities of residential towers in order to improve the social environment while reducing the cost of living.

CREATING A COMMUNITY BASED ON MATCHING NEEDS

SYSTEM A : Optimized Coop living to allow for people to meet neighbors. The neighbors would be optimized by matching needs and tasks. Allowing for a shared convenience and growing familiarity.

DECREASE IN THE PERSONAL COST OF LIVING AND ISOLATION

SYSTEM B: This system would lead to lower personal costs due to shared living and occupants would pay per sm per hour of spaces used.

NEIGHBORHOODS BASED ON EQUALITY INSTEAD OF SEGREGATION

SYSTEM C: The system can begin as a equal living neighborhood instead of mirroring the current power segregation in society.

UNITY SNIPPET VIGNETTES: The simulation shows random spawning of multiple rooms around a central room based on the door location of the previous room. The intent is to develop the random spawning into a spawning based on user needs to eventually become a residential floor plan.

ROOM SPAWNING SCRIPT

/* Based on code from Random Dungeon Genrator Tutorial -https://youtu.be/eR74EjkA_4s */using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RoomSpawner : MonoBehaviour {

public int openingDirection;
// 1 --> need bottom door
// 2 --> need top door
// 3 --> need left door
// 4 --> need right door


private RoomTemplates templates;
private int rand;
public bool spawned = false;

public float waitTime = 4f;

void Start(){
Destroy(gameObject, waitTime);
templates = GameObject.FindGameObjectWithTag("Rooms").GetComponent<RoomTemplates>();
Invoke("Spawn", 0.1f);
}


void Spawn(){
if(spawned == false){
if(openingDirection == 1){
// Need to spawn a room with a BOTTOM door.
rand = Random.Range(0, templates.bottomRooms.Length);
Instantiate(templates.bottomRooms[rand], transform.position, templates.bottomRooms[rand].transform.rotation);
} else if(openingDirection == 2){
// Need to spawn a room with a TOP door.
rand = Random.Range(0, templates.topRooms.Length);
Instantiate(templates.topRooms[rand], transform.position, templates.topRooms[rand].transform.rotation);
} else if(openingDirection == 3){
// Need to spawn a room with a LEFT door.
rand = Random.Range(0, templates.leftRooms.Length);
Instantiate(templates.leftRooms[rand], transform.position, templates.leftRooms[rand].transform.rotation);
} else if(openingDirection == 4){
// Need to spawn a room with a RIGHT door.
rand = Random.Range(0, templates.rightRooms.Length);
Instantiate(templates.rightRooms[rand], transform.position, templates.rightRooms[rand].transform.rotation);
}
spawned = true;
}
}

void OnTriggerEnter2D(Collider2D other){
if(other.CompareTag("SpawnPoint")){
if(other.GetComponent<RoomSpawner>().spawned == false && spawned == false){
Instantiate(templates.closedRoom, transform.position, Quaternion.identity);
Destroy(gameObject);
}
spawned = true;
}
}
}

--

--