oenvoyage / brender Goto Github PK
View Code? Open in Web Editor NEWBrender is a distributed rendering solution for the 3D animation suite blender. A new version is developed here :
Home Page: https://github.com/fsiddi/brender
Brender is a distributed rendering solution for the 3D animation suite blender. A new version is developed here :
Home Page: https://github.com/fsiddi/brender
Do you want to keep the matrix style? It makes it hard to read the console, and I sure do like a clean console with readable text.
For some some reason, the thumbnails will fail to render (even when rendered locally by the server itself!) until the server is restarted and I manually reset the thumbnails to unrendered in mysql.
Also, I would like you to check the "windowsify_paths" function. I attempted to fix it, but I am unsure if I did it right.
On the view_job page, the tooltip that pops up when the mouse is hovering over the job name (underneath job # /) that links back to the project page and reads "go to project page" gets cut off by an invisible element on the left side. Purely aesthetic and low priority.
I would replace most PHP and MySQL, use more AJAX,fetch data as JSON directly with getJSON
and read all data from the JSON object (1 database request => 1 object with all data?)
These scripts for previews:
http://jsmovie.burkhardt-medienproduktion.de/ (play the rendered images / the image sequence as video)
(https://github.com/benbyford/stopmotion-lite.js)
https://github.com/vkiryukhin/Smartupdater (update content dynamically if there is new content)
and also use jQuery 1.7.1 and jQuery UI 1.8.17
will contribute to this project and help with these things so this is currently like a todo list =)
I think IZPack is great for brender installations (also the web installer feature of it - it is fully crossplatform) it has many features and can also be used for automated installations and is open source (also here on github)
Also we could create real workflows using some solutions like: ffmpeg (convert to video), butter.js / popcorn maker (editing), kaltura, virtualdub, avidemux, jsmovie, smartupdater ...
Also some code optimization like less database requests, more ajax (json).
A notification system to inform / send email when job is finished, error occurs, status tracking ... using phpmailer or swiftmailer
Adding scheduled tasks / cronjobs
Versioning / revisions for files / projects
Webinstaller for installing and setting up client and server using izpack
Just some thoughts =)
An idea for workflows:
rendering => previe => converting using ffmpeg / combining with final sound (already existing) => cutting / editing / finalizing
All tasks made with brender serverside / clientside
ffmpeg should be used as standalone directly from the ffmpeg site and not installed as php module so client runs ffmpeg with command line.
for each task / step there should be also the option to send notifications via email
use .ini file instead of settings.php
SUMMARY IN COMMENT
I just installed brender and tried to use benchmark. On the control panel it says: BENCHMARK RESULT 00:00:00. The same appears in the client console.
I looked back through all the fclose errors and found this:
Notice: Undefined variable: path in H:\wamp\www\brender\functions.php on line 26
3
Call Stack:
0.0010 397136 1. {main}() H:\wamp\www\brender\brender_client.php:0
827.8889 721120 2. get_blender_path() H:\wamp\www\brender\brender_client
.php:120
------------------- benchmark renderquery = -b 'blend/benchmark.blend' -o 'rend
er/benchmark/stephen3server' -F PNG -f 110
'-b' is not recognized as an internal or external command,
operable program or batch file.
PHP Warning: fopen(logs/stephen3server.log): failed to open stream: No such fil
e or directory in H:\wamp\www\brender\functions.php on line 413
PHP Stack trace:
PHP 1. {main}() H:\wamp\www\brender\brender_client.php:0
PHP 2. output() H:\wamp\www\brender\brender_client.php:136
PHP 3. brender_log() H:\wamp\www\brender\functions.php:39
PHP 4. fopen() H:\wamp\www\brender\functions.php:413
I'm thinking this is what's causing the render to "complete" in no time. I looked through the functions file and found the switch statement that sets $path depending on the os. If $path isn't being set, then either $GLOBALS['os'] isn't set or it's set to something different than "windows". I could probably temporarily fix this by substituting in the case for windows before the return line on 263. Something is definitely up with that global though.
It's been a while since I used command line so I couldn't remember how to refer to something relatively. (simply copying down the variable set from the windows case left me with a "couldn't find specified path or whatever" error)
I just substituted this instead:
$path='"H:\wamp\www\brender\blender_bin\windows\blender.exe"';
return $path;
Now render time shows as 1 second :D a non-zero value, that's good!
So I did more digging. I found that my $GLOBAL['os'] equals (for some odd reason) ">windows" instead of "windows". Changing the case to account for this, the path doesn't work (as I figured out above). Here is proof that even after accounting for the greater than symbol, the path still needs tweaking:
become order query UPDATE orders set client=stephen3server WHERE id='48594'
------------------- benchmark renderquery = blender_bin/windows/blender.exe -b '
blend/benchmark.blend' -o 'render/benchmark/stephen3server' -F PNG -f 110
'blender_bin' is not recognized as an internal or external command,
operable program or batch file.
I noticed that the max chunk size for a job is 127. I was wondering what is the reasoning beyond this?
Hello people here interested in brender,
first of all thank you for your support help and testing.
We (Francesco and myself ) hope you are having a good time and that brender is helping you finish some projects.
We started a few talks and writing down some ideas for a new version, something online, web-based and much more extensible, flexible.
Would you be interested in helping some developement ? We plan to meet at one time during the blender conference (12-14 oct) to discuss plans around a beer. You are all welcome to join. More infos will follow
When I start the server i get this error:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /Applications/MAMP/htdocs/brender/brender_server.php on line 129
Is it an issue or my database is not updated at the latest version?
does this work now (with the 1.7.1 test version)?
Could we update jquery to 1.7.1 and jqueryui to 1.8.16?
Also use the new .on() events of 1.7?
Jqueryui is just used here for buttons or? Why not then twitter bootstrap (just css)
I think it's again here, the error was here 2 years ago. But I can't fix it. I've tryied many folder structures (without that .blend :)) : ../blend/myfile.blend ; ../blend/projectname/scenes/myfile.blend ; ../blend/projectname/input/myfile.blend
I can't select scene and instead of shot name is only blank field. :(
How to fix it?
Thanks for reply.
We could port it to sqlite 3 so we do not need the phpmyadmin part.
Instead we could use http://code.google.com/p/phpliteadmin/
Goal is making a more portable server. Just copy later the whole dir with sqlite db file and clone the server making is easier to scale the serverfarm.
Also as the latest PHP release includes a built in server we do not need apache (maybe) and also save this.
What do you think?
Line 87 of brender_client.php
Somehow, when I send a job, the render command turns into this:
2011/29/12 22:26:21 : info : - I am rendering using this command = blender_bin\windows\blender.exe -b ../blend///benchmark.blend -o ../render///benchmark/benchmark -P conf/HD_preview.py -F PNG -s 1 -e 1 -a
Obviously, the path H:\wamp\www\brender\..\blend\\\benchmark.blend
is wrong. Still investigating where these extra backslashes are coming from.
Do you know if we can use a (cuda based) server as client with a server os (linux?)
A search tool for finding jobs in a long list (could use some nice ajax suggestions). Might fit after a reorganization if the main navbar.
In settings page, when pressing the check_server_status button, the alert is informing that the server is running, although it is not.
Please forgive me if this is a stupid question but I dont use Blender on a day to day basis. We are currently testing Brender and our 3D guy was wondering how he would go about selecting which camera the video or still would render from?
I am currently thinking about a batch / python script that uses a config file and sets up the srver / client automatically.
Also why not (just a stupid idea) create a fully portable server (xampp / uniform) or include it so we dont have to set it up. And the script makes config, install (cmd?) and startup of server and client
And that could be used as service running when the server starts.
So we save much manual tasks. Would be very great.
(Another question if it is possible to realize it with sqlite3 and python / java the whole brender program)
I get about a thousand of these errors constantly. I'm fairly certain that this is an issue with a code and not the way I have it set up, but if I am doing something wrong, please tell me! (I haven't modified any of the code)
Warning: fclose() expects parameter 1 to be resource, boolean given in H:\wamp\w
ww\brender\functions.php on line 419
Call Stack:
0.0012 398072 1. {main}() H:\wamp\www\brender\brender_server.php:0
3.7533 717928 2. checking_alive_clients() H:\wamp\www\brender\brender_
server.php:61
5.7620 721112 3. brender_log() H:\wamp\www\brender\functions.php:638
5.9428 722040 4. fclose() H:\wamp\www\brender\functions.php:419
Idk what it is with my computer and relative paths, but replacing all the stuff in the logging parts with absolute paths to the log folder and log files solved the problem. I better look up windows and relative paths so I can sort this out.
P.S. This program looks beautiful when there are no errors! :D Soo readable!
Hello,
I found a problem with displaying thumbnails, when I use Brender under a subdirectory or an Apache Alias.
Thumbnails are viewed with an absolute path : /thumbnails//....../...png ; wich works fine with a brender installation in root directory of Apache.
I made two little corrections, and it's work fine now for me (show git diff at the end).
Thanks a lot for your brender project !!
Sebastien
git diff :
diff --git a/functions.php b/functions.php index 9776f7d..72fcff2 100755 --- a/functions.php +++ b/functions.php @@ -679,6 +679,7 @@ function check_create_path($path) { #print "DEBUG --- $path chmod\n"; $paths_array=explode("/",$path); - $current_path=""; + $path_to_check=""; #print_r($paths_array); foreach ($paths_array as $item) { #print "--- i am trying $item\n"; @@ -742,7 +743,7 @@ function get_thumbnail_image($job_id,$image_number,$class="") { $thumbnail_location="thumbnails/$project/$scene/$shot/small_$filename".str_pad($image_number,4,0,STR_PAD_LEFT).".$filetype"; #print "**** $thumbnail_location****"; if (file_exists("../$thumbnail_location")) { - return ""; + return "
"; } else { return false; diff --git a/web/view_image.php b/web/view_image.php index d1a2f4c..1510bab 100755 --- a/web/view_image.php +++ b/web/view_image.php @@ -33,7 +33,7 @@ // $file_name=$shot.str_pad($frame,4,0,STR_PAD_LEFT).".$filetype"; $file_name=$shot_basename.str_pad($frame,4,0,STR_PAD_LEFT).".png"; // test fix for non-PNG jobs thumbnail generation - $thumbnail_location="/thumbnails/$project/$scene/$shot/$file_name"; + $thumbnail_location="../thumbnails/$project/$scene/$shot/$file_name"; $query="select rendered_by,finished_time from rendered_frames where job_id='$job_id' and frame='$frame'"; $results=mysql_query($query);
I paste in: H:\wamp\www\brender\blend
When I click update, it turns into: H:wampwww
The jobs page always shows 100% under the rendered/total column (50/50, 110/110). I am unsure whether this problem only exists when restarting a previously completed job or whether it is present in all jobs. Possibly related to the fact that rendered frames (in MySQL) are not removed from the table when the job is restarted.
Thumbnail creation does not succeed: what are the requirements to make it work?
I run this at home with a few spare computers and I have an underpowered laptop that I take with me away from home. It would be nice to have a way to upload blender projects remotely to be rendered using the web interface.
Provide more information on how to setup brender server and clients (which packets to install, how commands work).
17.2.2012:started porting to Zend Framework
It'll be awesome feature to have this in brender. we can dispatch jobs easily without concerning frame start and end.
Maybe this is MAMP related, but I thought of giving this ticket system a try:)
if I start brender_server.php i get this:
connect.php info :: ---- localhost,brender,brender ---- Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Applications/MAMP/htdocs/brender/connect.php on line 8 Warning: mysql_connect(): No such file or directory in /Applications/MAMP/htdocs/brender/connect.php on line 8 Fatal error: unable to connect to mysql server
For the tables we can use the great datatables plugin.
The structure of the tables should have the right structure (thead, tbody ...)
It has some nice plugins like scrollable inner tables, fixed columns, fixed header ...
I could need a database dump with example data for testing as I have not so much time this weekend but I want to integrate the datatables plugin soon
problem with "check server status " on settings page. logging is to the path /logs, which is supposed to be brender/log ...
but in web interface, the root is brender/web/, so it gets to /brender/web/logs.
to be fixed by o
directstart not working with ajax.
might be something that does not get transfered through javascript because it is a checkbox, all other values (normal input) are working
when you are adding a new job, the dialog box should stop the refresh of the page... it can refresh in the middle of a job creation, annoying :)
This would be a really great feature to have, since studios might have both a small CPU-based renderfarm and powerful workstation with GTX or Tesla graphic cards. Rendering the same job across this two architectures in unfortunately not possible, therefore having an option to separate them would be great.
Development could happen in several steps:
Multiple machines to render tiles for the same image.
We can use border render.
http://www.blender.org/documentation/blender_python_api_2_63_14/bpy.ops.view3d.html?highlight=border%20render#bpy.ops.view3d.render_border
And the stitch images together with imagemagick.
When launching php brender_server.php
I get the following message:
connect.php info :: ---- localhost,brender,brender ----
Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Applications/MAMP/htdocs/brender-mobile/connect.php on line 8
Warning: mysql_connect(): No such file or directory in /Applications/MAMP/htdocs/brender-mobile/connect.php on line 8
It happend already in the past but I can't recall what it was due to.
Any tips?
Perhaps having a python script that uses css to open up terminals on each machine. This could be also better studied and implemented as a solution that allows more control over render nodes.
The brender web interface claims that the project paths are relative to the web folder, while they are actually relative to the brender main folder. Have you ever used relative paths with projects and had it work successfully? If not, I would like to go ahead and modify the web interface to use paths relative to brender.
This problem affects the "server test" feature and job creation because the web interface works with paths relative to web
, but after the job is created, the paths have to be changed relative to brender root in order for the render to complete successfully.
This is really annoying, since I have to change blend path to ../blend
to create the job, then switch it back to blend
so that blender can find the blend files.
After filling the form, an entry on the table appears (with the right paths) but the title of the project does not. When a new job is created, in the dropdown list the project appears as an empty entry. Job submission does not work.
I saw in the brender 0.5 video that there are frames / previews of the rendered blend files. Is this just for the shown jpeg render mode or also for videos (with sound?)
So can I use the video render mode ? Where do I set the render settings?
We could use jquery mobile or twitter bootstrap for the mobile version
And also use a script to detect mobile devices and redirect to the mobile version directly
See also http://detectmobilebrowsers.com and http://stackoverflow.com/questions/3514784/best-way-to-detect-handheld-device-in-jquery
This might be not too hard to implement. Add an option per project to enable versioning of jobs. This feature can be seen in the Blender Institute renderfarm. I will better illustrate it after some discussion:)
I add a some useful links:
The "rendered" column in jobs overview doesnt show anything. The function needs to be corrected in functions.php according to new paths system
Wen I start a client i get this bunch of warnings
### INFO ws17 status :
PHP Warning: fopen(logs/ws17.log): failed to open stream: No such file or directory in /shared/software/brender/functions.php on line 437
PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /shared/software/brender/functions.php on line 438
PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /shared/software/brender/functions.php on line 439
PHP Warning: fopen(logs/brender.log): failed to open stream: No such file or directory in /shared/software/brender/functions.php on line 441
PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /shared/software/brender/functions.php on line 442
PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /shared/software/brender/functions.php on line 443
I tried to give 777 permission to the whole directory and file. I do not really understand how this is supposed to work. Any suggestion?
A badly formatted table is being created. This breaks the layout and causes the footer not to stitch anymore to the bottom of the page.
fsiddi looks into this.
Hi all,
There's a bug in thumbnailer option, it won't show up if we choose blend_default in config.
How can the slave login the database without having lamp or wamp installed.
We now need php and mysql on the slave workstation just for logging in with the connect.php script.
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.