anthill / city-core Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
so that we gain:
(for dev workflow)
https://www.npmjs.org/package/nodemon
Shading artifacts can be seen (exclusively on vertical surfaces).
When returning to SkyView from FPView, camera rotates if camera was rotating in FPView.
otherwise too many building are plotted and it kills the app
In order not to go through walls, we should add physijs but add only the surrounding object to the engine.
Apparently, the script is CPU-bound, so parallelization should make it a lot faster.
Do server-side API for fine-grain metadata
It hit me recently. The real problem we need to solve is finding the 3D objects enclosed (even if only partially) in the camera field (which is a trapezoid delimited by the close and far planes).
It's the most generic problem to be solved that is useful to us.
Finding the buildings within [north, south, east, west]
is only a special case of this problem when the camera above ground facing negative z, with (0, 1, 0)
as its up vector.
It's still unclear how this generic problem is solved, but for sure it demonstrates that asking objects by north/south/east/west is a bad API for what we're doing.
Investigating in the background. Let's keep doing n/s/e/w in the meantime.
In front/src/3dviz.js
, don't expose the camera. Instead, expose an object shaped like:
js var cameraProxy = { position, lookedAtVector, upVector };
lookedAtVector and upVector are getter/setters calling the corresponding functions.
Any change to one of these 3 things emits a "cameraViewChange" event.
m.id
is never undefined
https://github.com/anthill/bordeaux3d/blob/6e1914d4100eb7d1e67a251ec483f30c763056d5/tools/unzipCUB3ds.js#L143 (seen some undefined
floating around)The README estimates the extraction time to 5 minutes on "normal hardware"but I've launched the extraction procedure more than an hour ago and it's still working at it!
My guess is that the operation takes around 5 minutes per exported tile (I have exported something like 25 tiles), the docs should probably mention that.
https://github.com/anthill/bordeaux3d/blob/45cde7a0f6c05fcba6d1ab53553c57ab36d1b91b/front/src/raycasting.js#L20-L21
e.clientX/Y
are element-relative while window.innerHeight/Width
are window-relative. Things work fine now, because the element takes up the entire screen.
Maybe add a blue sky or whatev's
at line 238 of inde
The mesh should know its own position. Move this to client.js
https://github.com/DavidBruant/bordeaux3d-core/commit/fe2d7a9923d33ae40492e140d75deaa3901f9fb4#diff-44b390af6d21196c55fb50f726184ffcR100
Previously, just having the pointer in either direction was enough for the view to move. Now, the mouse needs to be moved for the camera to turn.
Unnecessarily big, especially for what we need in the rtree
Error with object 06348026 skipping. [RangeError: Trying to access beyond buffer length] Error with object 06347529 skipping. [RangeError: Trying to access beyond buffer length] Error with object 06308382 skipping. [RangeError: Trying to access beyond buffer length] Error with object 06308336 skipping. [RangeError: Trying to access beyond buffer length] Error with object 06307469 skipping. [RangeError: Trying to access beyond buffer length] Error with object 06359943 skipping. [RangeError: Trying to access beyond buffer length] Error with object 06349218 skipping. [RangeError: Trying to access beyond buffer length] Error with object 063598 skipping. [RangeError: Trying to access beyond buffer length] Error with object 06345507 skipping. [RangeError: Trying to access beyond buffer length] Error with object Grd skipping. [RangeError: Trying to access beyond buffer length] Error with object Poteau skipping. [RangeError: Trying to access beyond buffer length] Error with object Grd_Road skipping. [RangeError: Trying to access beyond buffer length] Error with object x146y90 skipping. [RangeError: Trying to access beyond buffer length]
Hi
I justed wanted to look at your project but I was unable to install it. Running the command line
$ node tools/unzipCUB3ds.js --out front/data/ --zip path/to/3Ddata/BATI3D_NT.zip
I had the following error :
events.js:72
throw er; // Unhandled 'error' event
^
Error: ENOENT, open '/Users/…/Documents/bordeaux3d/path/to/3Ddata/BATI3D_NT.zip'
Do you have any explanation ?
Walking around first-person showed that tile's z aren't aligned.
It's still unclear how to fix it.
With fullscreen API.
unzipCUB3ds.js works on zips without textures, but @iOiurson found that when applied to a zip with textures, it doesn't seem to work.
At least, the first 'close' event of unzip.Extract
is not emitted for a reason yet unknown.
Against all old, the GUI to download the 3D data isn't based on Flash. So there is an opportunity to automate the download with Casper.js.
Because they're not supposed to be there ideally.
Tiles are centered around the bounding box which includes buildings that are outside the 200x200 perimeter. When trying to display several tiles together, it takes re-computing the center and translating every object inside the tile.
We've been assuming that the view is full screen. We should only refer to the container.
I'm doing part of it as part of the refactoring, but there may be left overs.
Right now, we have 3 coordinates systems:
We should reduce to 2. I'd argue in favor of removing the last one.
Current browserified script is 3.2MB.
Commenting out require('socket.io-client');
removes 500k. Do we really need Socket.io (with all the fallbacks for old browsers and shit)?
Commenting out dat-gui
saves 300k
We'd be at ~2.4MB which is still a lot. Need to investigate minifying.
https://github.com/anthill/bordeaux3d/blob/6e1914d4100eb7d1e67a251ec483f30c763056d5/front/src/loadTiles.js#L14-L17
This removes all buildings, then re-adds most of them right after. It's unclear it costs in terms of perf, but it is inefficient.
Relates to #16. Maybe they can be fixed together.
Apparently, some objects have shared names like "Poteau" or "Road". Need to look into it and maybe devise a algorithm to assign unique ids.
and use those as high quality vector data
For whatever reason, harmony-collections
doesn't work in Firefox. Something related to the size
getter.
Working on Chrome for now, but we need to fix that before shipping.
on the server i saw this sometimes:
starting in mode dev
Server running on 9000
/home/queenant/city-core/node_modules/socket.io/node_modules/engine.io/lib/socket.js:338
this.sentCallbackFn.push.apply(this.sentCallbackFn, this.packetsFn);
^
RangeError: Maximum call stack size exceeded
at Socket.flush (/home/queenant/city-core/node_modules/socket.io/node_modules/engine.io/lib/socket.js:338:32)
at WebSocket.EventEmitter.emit (events.js:117:20)
at /home/queenant/city-core/node_modules/socket.io/node_modules/engine.io/lib/transports/websocket.js:94:14
at afterWrite (_stream_writable.js:274:3)
at onwrite (_stream_writable.js:266:7)
at Socket.WritableState.onwrite (_stream_writable.js:97:5)
at Object.afterWrite (net.js:728:12)
error: Forever detected script exited with code: 8
error: Script restart attempt #1
starting in mode dev
Server running on 9000
we should have a look
Building don't load in Safari
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.